前几天搞服务器备份发邮件的功能,搞了好长时间都没调通,想必有很多人和我遇到过一样的问题,今天分享出来帮大家解决燃眉之急。我不允许还有不会的童鞋出现。
-
安装mailx(邮件服务)
yum install mailx -y
-
编辑配置文件
vim /etc/mail.rcset from=xxx@qq.com #发信人地址 set smtp=smtps://smtp.qq.com:465 #qq邮箱服务器地址 set smtp-auth-user=xxxx@qq.com #登录qq邮箱的账号 set smtp-auth-password=xxx #授权码,需要从qq邮箱中配置 set smtp-auth=login set ssl-verify=ignore set nss-config-dir=/root/.certs #证书地址
-
qq邮箱授权码:登陆后->账号与安全->安全设置
-
证书配置
mkdir -p /root/.certs cd /root/.certs echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt certutil -L -d /root/.certs certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
-
测试发邮件
echo 'hello' |mail -v -s "test" xxx@qq.com
-
mysql导出脚本
mysqldump -u${用户名} -p${密码} ${库名} > /xxx/filename.sql
-
编写脚本
vim /root/mysql_dump_script.sh #!/bin/bash filename=$(date "+%Y-%m-%d") mysqldump -u${用户名} -p${密码} ${库名} > /root/backsql/$filename.sql cd /root/backsql tar czvf $filename.tar.gz $filename.sql echo '备份数据库文件' |mail -v -s "$filename 数据库备份" -a /root/backsql/$filename.tar.gz xxxx@qq.com
-
增加权限
chmod 777 /root/mysql_dump_script.sh
-
增加任务
crontab -e 0 2 * * * /root/mysql_dump_script.sh #每天2点执行