1. 编辑shell脚本 (备份&清理)
#!/bin/bash
#在此设置要备份的数据库名,以TEST为例
DBNAME="TEST"
#备份数据临时存放位置,备份完成之后自动删除.
BACKDIR="/home/root/backup/"
#获取系统时间
DATE=`date +%Y%m%d`
#备份文件名以时间命名
FILENAME=dump_${DATE}.sql
#进入备份目录
cd ${BACKDIR}
#备份数据库并追加日志
mysqldump -uroot -proot --databases TEST > ${BACKDIR}${FILENAME} >> db_backup.log
#删除近7天文件
find ${BACKDIR} -mtime +7 -name "*.sql" -exec rm -rf {} \;
2. 将脚本加入crontab自动执行计划
添加计划
crontab -e
加入一行:
#每天晚上11点半, 执行对应路径下的脚本.
30 23 * * * /home/root/backup.sh
保存退出(vim命令)
3. Cron 各项的描述
以下是 crontab 文件的格式:
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
minute: 区间为 0 – 59
hour: 区间为0 – 23
day-of-month: 区间为0 – 31
month: 区间为1 – 12. 1 是1月. 12是12月.
Day-of-week: 区间为0 – 7. 周日可以是0或7.
4.Crontab 示例
-
在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。
1 0 * * * /root/bin/backup.sh
-
每个工作日(Mon – Fri) 11:59 p.m 都进行备份作业。
59 11 * * 1,2,3,4,5 /root/bin/backup.sh
下面例子与上面的例子效果一样:
59 11 * * 1-5 /root/bin/backup.sh
-
每5分钟运行一次命令
*/5 * * * * /root/bin/check-status.sh
-
每个月的第一天 1:10 p.m 运行
10 13 1 * * /root/bin/full-backup.sh
-
每个工作日 11 p.m 运行。
0 23 * * 1-5 /root/bin/incremental-backup.sh
4. crontab常用的命令
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态
crontab –e //往 cron 中添加一个作业
crontab –e //修改 crontab 文件. 如果文件不存在会自动创建。
crontab –l //显示 crontab 文件。
crontab -r //删除 crontab 文件。
crontab -ir //删除 crontab 文件前提醒用户