linux定時備份mysql數據庫併發送郵件通知

準備工作

使用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

備份腳本

dbback.sh

#!/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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章