1、Linux系统设置定时任务进行数据备份几乎是每个环境都必备一种基本操作,还有一些活动安排也是靠定时任务完成的,下面就是定时任务的具体实现:
1、创建存放定时任务脚本的文件夹:
mkdir shell
vi backup_mysql.sh
2、写入以下脚本文件:
#!/bin/sh
#备份地址
BACK_DIR="/backups"
DATE=`date +%Y%m%d`
LOG_DIR=$BACK_DIR"/logs"
LOG=$LOG_DIR"/"$DATE".log"
DATE_TIME=`date +"%Y-%m-%d %H:%M:%S"`
echo $DATE_TIME" start" >> $LOG
echo $DATE_TIME" 开始备份数据库" >> $LOG
#备份并且打成压缩包 注意写自己的路径 我这里是backups 必须是存在的文件夹
mysqldump xuan | gzip > /backups/xuan_$(date +%Y%m%d_%H%M%S).sql.gz
echo $DATE_TIME" 备份成功" >> $LOG
echo $DATE_TIME" 删除前一天备份数据库" >> $LOG
find /backups -mtime +1 -name "*.sql.gz" -exec rm -rf {} \;
#end
3、修改Mysql的配置文件my.cnf:(如果没有下列配置项加上即可)
[mysqldump]
quick
max_allowed_packet = 16M
user=root
password=xuan
3.1、修改之后的效果图:
4、创建定时任务:
crontab -e
4.1、效果图如下:
Cron表达式范例:( * * * * * 表示每一分钟备份一次)
每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
每隔5分钟执行一次:0 0/5 * * *
5、重启crond查看效果:
sudo systemctl restart crond
5.1、备份成功效果图: