準備工作
使用linux系統mail發送郵件功能,修改配置一下內容:
vim /etc/mail.rc
文件尾增加以下內容
set [email protected] smtp="smtp.sarnath.com"
set smtp-auth-user="[email protected]" smtp-auth-password="xxxxx"
set smtp-auth=login
說明:
from: 對方收到郵件時顯示的發件人
smtp: 指定第三方發送郵件的smtp服務器地址
smtp-auth: SMTP的認證方式。默認是LOGIN,也可改爲CRAM-MD5或PLAIN方式
smtp-auth-user: 第三方發郵件的用戶名
smtp-auth-password: 用戶名對應密碼
問題
mysql和mysqldump出現command not found 問題解決
1、查找mysql安裝路徑
find / -name mysql
通常mysql安裝路徑在:/usr/local/mysql/bin/mysql
2、mysql:command not found建立軟連接
ln -s /usr/local/mysql/bin/mysql /usr/bin
3、mysqldump:command not found 建立軟連接
ln -s /usr/local/mysql/bin/mysqldump /usr/bin
備份腳本
#!/bin/bash
db_ip="192.168.0.189"
db_user="root"
db_passwd="898"
db_name="kongguan"
# the directory for story your backup file.you shall change this dir
backup_dir="/opt/mysqlbackup"
echo ${backup_dir}
# date format for backup file (dd-mm-yyyy)
time="$(date +"%Y%m%d%H%M%S")"
start=`date +%Y-%m-%d_%H:%M:%S`
cd /usr/local/mysql/bin
mysqldump -h $db_ip -P 3306 -u$db_user -p$db_passwd $db_name > ${backup_dir}/${time}.sql
if [ $? -eq 0 ]
then
#記錄結束時間
end=`date +%Y-%m-%d_%H:%M:%S`
echo -e "結束執行備份:$end\n" >> $backup_dir/autolog.log
#發送通知郵件
echo -e "數據庫備份完成!\n開始時間:$start\n結束時間:$end" | /bin/mail -s "MySQL備份通知" [email protected]
fi
定時執行
每晚22點00分執行數據庫備份腳本
0 22 */1 * *
Linux
* * * * * *
- - - - - -
| | | | | |
| | | | | + year [optional]
| | | | +----- day of week (0 - 7) (Sunday=0 or 7)
| | | +---------- month (1 - 12)
| | +--------------- day of month (1 - 31)
| +-------------------- hour (0 - 23)
+------------------------- min (0 - 59)
在線工具連接:https://tool.lu/crontab
運行效果
vim autolog.log
結束執行備份:2019-04-17_13:49:49
結束執行備份:2019-04-17_13:59:33