1.MySQL定时备份并发送邮件

#!/bin/bash
#author: zking
#MySQL定义备份并发送邮件
#定义变量
DATE=$(date +%F"_"%H:%M:%S)
HOST=127.0.0.1
DB=db1
USERNAME=root
PASSWORD=un1xR00t
MAIL=529503476@qq.com
BACKUP_DIR=/data/db_backup
SQL_FILE=${DB}_sql_$DATE.sql
​
#判断备份目录是否存在
if [ ! -d $BACKUP_DIR ];then
     mkdir -p $BACKUP_DIR
fi
​
echo $BACKUP_DIR/$SQL_FILE
#执行备份命令
if mysqldump -h$HOST -u$USERNAME -p$PASSWORD --single-transaction $DB > $BACKUP_DIR/$SQL_FILE ;then
        echo "备份成功,文件位置:$BACKUP_DIR/$SQL_FILE" | mail -s "MySQL数据备份" $MAIL
else
        echo "备份失败" | mail -s "MySQL数据备份" $MAIL
fi

这里使用的是mailutils工具包,请提前下载,输入命令:apt install -y mailutils。发送测试邮件:

echo "备份数据,$(date +%F' '%H:%M:%S)" | mail -s "MySQL数据备份" 你的邮件地址

发送成功之后,可以直接到邮件中查看发送结果。

如何实现定时发送呢?

Ubuntu 默认自带了Crontab计划任务,它的工作方式与 Windows 中的任务调度程序相同。使用 cron 守护程序,可以指定应执行某个进程(例如维护或备份作业)的时间。这样,就可以自动执行这些任务,以便稍后运行,而无需手动干预。

查看Cron服务相关命令:

# 查看服务状态
sudo  service cron status
# 开启服务
sudo service cron start
# 停止服务
sudo service cron stop
# 重启服务
sudo service cron restart

设置定时任务:

输入命令 crontab -e 并按 Enter 键打开 crontab 文件。该命令如下所示:

# 编写定时任务
crontab -e
# 查看定时任务
crontab -l

初次使用会让你选择文本编辑器,默认是 nano ,但是我只会用 vim ,所以选择 3,如图:

然后在最后插入以下内容就可以了:

# 每2分钟执行一次root目录下的mysqltest.sh脚本
*/2 * * * * /root/mysqltest.sh

Crontab定时任务命令格式

# 格式如下
# minute hour day-of-month month-of-year day-of-week commands
# 00-59 00-23 01-31 01-12 0-6 (0 is sunday) 
​
# 每天0点0分,执行指定脚本
0 0 * * * /root/mysqltest.sh
​
# 星期1到星期5,11点30分,执行指定脚本
30 11 * * 1,2,3,4,5 /root/mysqltest.sh
​
...

首先 crontab 任务配置基本格

*   *  *  *  *  command
  • 第1列表示分钟0~59 每分钟用*或者 */1表示

  • 第2列表示小时0~23(0表示0点)

  • 第3列表示日期1~31

  • 第4列表示月份1~12

  • 第5列标识号星期0~6(0,7都可表示星期天)

  • 第6列要运行的命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值