Linux中周期任务

在Linux下可以用crontab命来设置周期任务

1. crontab文件

[root@guoke3915 ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

2. 查看当前任务

[root@guoke3915 ~]# crontab -l
0 * * * * /data/test.sh

3. 解析

参数 字段名称 说明 取值范围
第一位 分钟 每小时的第几分钟执行 0-59
第二位 小时 每日的第几个小时执行 0-23
第三位 日期 每月的第几天执行 1-31
第四位 月历 每年的第几月执行 1-12
第五位 星期 每周的第几天执行 0-6
第六位 命令名称 欲执行的命令及参数 若是sh文件需要绝对路径

4. 特殊符号

符号 说明
* 表示任何时刻
, 表示分割
表示一个段,如第二段里: 1-5,就表示1到5点
/n 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

5. 编辑

输入crontab -e直接编辑

6. 启动、停止、重启服务和重新加载配置

/sbin/service crond start
/sbin/service crond stop
/sbin/service crond restart
/sbin/service crond reload

7. 举例

0 * * * * /data/test.sh   # 每分钟0秒执行
*/10 * * * * /data/test.sh # 每10分钟秒执行
55 5 * * * /data/test.sh   # 每天05:55执行
5 8-20/3 * * * /data/test.sh  #     8:05,11:05,14:05,17:05,20:05 执行
0%