linux定时备份mysql数据库并发送邮件通知

版权声明:欢迎分享转载 我可能会失败,但我不会一直失败 https://blog.csdn.net/u012637358/article/details/89215676

准备工作

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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u012637358/article/details/89215676