linux自动备份数据库并发送邮件

首先写一个定时任务脚本:

第三行就是数据库备份命令,第四行就是发送附件的命令,其中发送附件我用mail -a +附件的方式一直无法发送,最后用mutt方式方式附件成功!

(说明:因为备份的sql文件比较大都是几百兆,发送邮件是不支持的,最后用rar分卷压缩为5M,在批量发送附件,就可以成功了)

改动为为:

rar a -v5m /root/db_back/fuyin$DATE.rar /root/db_back/fuyin$DATE.sql
mutt -s "每日数据库备份" -a /root/db_back/fuyin$DATE*.rar -- 969114624@qq.com < /root/db_back/delfile.txt

下方为配置安装邮件的步骤:

使用场景:
阿里云服务器centos7(linux)+发送端:163邮箱+接收端:qq邮箱

准备:
163邮箱配置


QQ邮箱配置


开始配置
阿里云封闭25端口,所以不能通过默认的端口(25)发送邮箱服务,需要通过邮箱服务器的加密端口(465)来完成发送邮件的服务。配置流程如下:

①    修改 /etc/mail.rc   末尾处加入

【利用163邮箱发送,最后一句是证书存放位置,届时发送邮件的时候,会通过此证书,来对加密端口进行解密,此处加密端口是465】

set bsdcompat
set from=xxx@163.com//xxx:自己的163邮箱
set smtp=smtps://smtp.163.com:465
set smtp-auth-user=xxx@163.com//xxx:同上
set smtp-auth-password=xxxxxx//xxxxxx:准备阶段获得的授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/mail_cert//证书存放位置,后叙

②    然后是创建文件夹来放证书文件,执行如下命令行

mkdir -p /root/mail_cert

执行命令:

 echo -n "" | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /root/mail_cert/163.crt

 

certutil -A -n "GeoTrust SSL CA"-t "C,," -d /root/mail_cert -i 163.crt

certutil -A -n "GeoTrust Global CA"-t "C,," -d /root/mail_cert -i 163.crt

certutil -L -d /root/mail_cert

执行后即可发送邮件:

测试:
echo "TEST" | mail -v -s "Title" xxxx@qq.com

这里:xxxx@qq.com指目标邮箱

邮件可以发送但是会有警告

 

警告可以忽视,若想去掉警告,则在刚才证书目录/root/mail_cert下执行

certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu"  -d /root/mail_cert -i 163.crt

出现如下表示设置成功

Notice: Trust flag u is set automatically if the private key is present.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值