通过Crontab定时备份
目地
通过Linux下的定时任务Crontab来定期的执行脚本,备份服务器中的MySQL数据。
Shell脚本解释
#!/bin/sh
t=$(date +%Y%m%d%H%M%S);
cd /backup/mysql
mysqldump -uroot -pyourpassword yourdatabase > yourdatabase.sql
tar -czf yourdatabase.${t}.tar.gz yourdatabase.sql
rm -r yourdatabase.sql
- 按照项目使用的db来备份
- 默认备份在/backup/xxx项目/mysql
- 默认的文件格式为xxx项目+14位时间戳(例如:20190709131051)
- 需要删除mysqldump导出的sql文件
Crontab使用方法
Crontab是Linux内置的一个定时命令,可以帮助我们定期执行一些工作。
语法为
crontab [-e [UserName]|-l [UserName]|-r [UserName]|File ]
- -e 编辑当前的定时任务表
- -l 列出目前的定时任务
- -r 删除目前的定时任务
Crontab的执行参数
minute hour day month week command
- minute(分钟)取值范围0~59
- hour(小时)取值范围0~23
- day(天)取值范围1~31「注意这里是1」
- month(月)取值范围1~12「注意这里是1」
- week(星期)取值范围0~6
- command为需要执行的命令
Crontab中常用的特殊符号
- * 表示任何时间
- , 表示分割
- - 表示时间区段,例如1-5,就为1到5
- /n 表示每n个单位执行一次,*/1,就表示每个1个单位执行一次命令
示例
- 0 0 */1 * * ls : 每天执行一次ls
- */10 * * * * ls : 每十分钟执行一次ls
- 更多示例可以参考这里
实现
- 将上面的bash保存为backup.sh
- chmod +x backup.sh修改为可执行的权限
- 执行 crontab -e将任务添加到定时任务表中
- service cron restart #重启cron
REF:
- [crontab 定时任务](https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html)
- [Ubuntu中使用crontab添加定时任务](https://blog.csdn.net/tianyafeng123xin/article/details/70195843)