使用脚本和定时任务自动备份管理服务器

时间:2021-05-21 07:50:44

1.首先是要知道备份的具体命令

engine-backup --scope=all --mode=backup --log=/bak/log$(date +%Y%m%d%H%M%S).log --file=/bak/engine$(date +%Y%m%d%H%M%S).bak

已日期具体到秒的文件名格式保存备份文件


2.把上面的这条命令做成脚本文件

[root@engine bak]# cat backup.sh 
#!/bin/bash
#engine backup
engine-backup --scope=all --mode=backup --log=/bak/log$(date +%Y%m%d%H%M%S).log --file=/bak/engine$(date +%Y%m%d%H%M%S).bak


并赋予执行权限

chmod +x backup.sh


运行一下脚本是否可正常运行

./backup.sh


3.创建定时任务

crontab -e

*/5 * * * * /bak/backup.sh

每五分钟备份一次,具体频率根据自己需求调整


crontab -l

查看任务列表


编辑完保存后,重启一下crond服务

service crond restart

systemctl restart crond


空格之间的参数意义如下

分钟   小时   天   月   星期   要执行的命令


查看一下备份目录下文件

使用脚本和定时任务自动备份管理服务器


定时任务已经生效。


4.创建脚本定期清理备份文件

[root@engine bak]# cat clear.sh 
#!/bin/bash
/usr/bin/find /bak -mmin +10 -name "*.bak" -exec rm -rf {} \;
/usr/bin/find /bak -mmin +10 -name "*.log" -exec rm -rf {} \;


删除10分钟之前的备份文件,如果改为-mtime +10,则为删除10天前的备份文件


赋予执行权限

chmod +x clear.sh


5.创建定时任务

crontab -l

[root@engine bak]# crontab -l
*/5 * * * * /bak/backup.sh
*/10 * * * * /bak/clear.sh


设为每10分钟清理一次,可根据自身需求调整