在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 执行