Linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。
Linux 系统也提供了Linux用户控制计划任务的命令:crontab 命令。
- 日志文件:ll /var/log/cron*
- 编辑文件:vim /etc/crontab
- 进程:ps -ef | grep crond ==> /etc/init.d/crond restart
- 作用:任务(命令)定时调度(如:定时备份,实时备份)
- 简要说明:cat /etc/crontab
* 代表所有的取值范围内的数字。如月份字段为*,则表示1到12个月;
/ 代表每一定时间间隔的意思。如分钟字段为*/10,表示每10分钟执行1次;
- 代表从某个区间范围,是闭区间。如2-5表示2,3,4,5,小时字段中0-23/2表示在0~23点范围内每2个小时执行一次;
, 分散的数字(不连续)。如1,2,3,4,7,9;
由于各个地方每周第一天不一样,因此Sunday=0(第1天)或Sunday=7(最后1天)。
crontab配置实例
# 每一分钟执行一次command(因cron默认每1分钟扫描一次,因此全为*即可)
* * * * * command
# 每小时的第3和第15分钟执行command
3,15 * * * * command
# 每天上午8-11点的第3和15分钟执行command
3,15 8-11 * * * command
# 每隔2天的上午8-11点的第3和15分钟执行command
3,15 8-11 */2 * * command
# 每个星期一的上午8点到11点的第3和第15分钟执行command
3,15 8-11 * * 1 command
# 每晚的21:30执行command
30 21 * * * command
# 每月1、10、22日的4:45执行command
45 4 1,10,22 * * command
# 每周六、周日的1 : 10执行command
10 1 * * 6,0 command
# 每小时执行command
0 */1 * * * command
# 晚上11点到早上7点之间,每隔一小时执行command
* 23-7/1 * * * command
# crontab设置脚本月底最后一天执行
方法一:00 8 L * * command
方法二:00 8 28-31 * * [`date -d tomorrow +\%e` -eq 1 ] && (command) 如果方法一设置失败就使用方法二