CentOS Linux 上的 crontab(任务计划)配置详解

查看:

查看当前任务计划,请使用如下命令:

[root@host ~]# crontab -l

或者

[root@host ~]# cat /var/spool/cron/root

添加或者修改:

添加或者修改任务计划,请使用如下命令:

编辑:

[root@host ~]# crontab -e

或者使用如下命令来添加一个任务计划:

[root@host ~]# echo "*/3 * * * * sh /root/xxx.sh" >> /var/spool/cron/root

或者使用如下命令删除某个任务计划:

[root@host ~]# sed -i "/xxx.sh/d" /var/spool/cron/root

( 1 )格式:

crontab 的格式如下:

* * * * * user task

分 时 日 月 周 user task

字段说明:

  1. 分钟( 0 – 59 )
  2. 小时( 0 – 24 )
  3. 日期( 1 – 31 )
  4. 月份( 1 – 12 ;或英文缩写 Jan 、Feb 等)
  5. 周几( 0 – 6 ,0 为周日;或英文缩写 Sun 、Mon 等)
  6. 用户名(执行命令时以此用户的身份)
  7. 要执行的命令(路径)

月份英文缩写:

  1. 一月 、JAN 、Jan 、January
  2. 二月 、FEB 、Feb 、February
  3. 三月 、MAR 、Mar 、March
  4. 四月 、APR 、Apr 、April
  5. 五月 、MAY 、May 、May
  6. 六月 、JUN 、Jun 、June
  7. 七月 、JUL 、Jul 、July
  8. 八月 、AUG 、Aug 、August
  9. 九月 、SEP 、Sept 、September
  10. 十月 、OCT 、Oct 、October
  11. 十一月 、NOV 、Nov 、November
  12. 十二月 、DEC 、Dec 、December

星期英文缩写:

  1. 星期一 、Mon 、Monday
  2. 星期二 、Tues 、Tuesday
  3. 星期三 、Wed 、Wednesday
  4. 星期四 、Thur 、Thursday
  5. 星期五 、Fri 、Friday
  6. 星期六 、Sat 、Saturday
  7. 星期天 、Sun 、Sunday

( 2 )每分钟或者每小时执行一次:

如果需要每分钟或者每小时执行一次,则需要这么写:

# 每分钟执行一次
*/1 * * * * sh /root/xxx.sh

# 每 3 分钟执行一次
*/3 * * * * sh /root/xxx.sh

# 每 30 分钟执行一次
*/30 * * * * sh /root/xxx.sh

# 每 2 小时执行一次
0 */2 * * * sh /root/xxx.sh

# 每 2 小时执行 60 次
# 比如现在是 14 点整,到了 16 点,从 16 点 00 分到 16 点 59 分每分钟都执行一次;
# 到了 18 点,从 18 点 00 分到 18 点 59 分每分钟都执行一次 ......
* */2 * * * sh /root/xxx.sh

( 3 )每 30 秒钟执行一次:

如果需要每 30 秒钟执行一次,则需要这么写:

* * * * * sleep 5; sh /root/xxx.sh
* * * * * sleep 35; sh /root/xxx.sh

因为 crontab 的最小时间单位是分钟,所以采用 sleep 的方式来实现秒级的运行。即同时创建两个自动任务:

  • 第一个任务每分钟执行一次,是先休眠 5 秒钟后再执行 xxx.sh ;
  • 另一个任务也是每分钟执行一次,是先休眠 35 秒钟后再执行 xxx.sh 。

这样就相当于只有一个任务,且每 30 秒钟执行一次。

这篇文章对你有帮助吗?

相关文章

发表评论?

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据