前幾天搞伺服器備份發郵件的功能,搞了好長時間都沒調通,想必有很多人和我遇到過一樣的問題,今天分享出來幫大家解決燃眉之急。我不允許還有不會的童鞋出現。
-
安裝mailx(郵件服務)
yum install mailx -y
-
編輯配置檔案
vim /etc/mail.rc set 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點執行