crontab 简明教程

1. 最常用的两个命令:

#查看crontab定时任务列表
crontab -l
#编辑crontab定时任务列表
crontab -e

2. 一共有 5 个星号:

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 7) (星期天 为0或7) 或sun,mon,tue,wed,thu,fri,sat 
|    |    |    +---------- 月份 (1 - 12) 或jan,feb,mar,apr ... 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

3. 注意crontab每次检查间隔是1分钟,所以如果5个都是*,表示每分钟都执行一次。

4. *的写法总结:

  • 所有时间点:直接用*
  • 指定多个时间点:直接把时间点用逗号隔开,比如15分30分执行,那就把第一个*15,30 替代。
  • 指定时间区间:起始时间和终止时间用短横线连接,比如3-5
  • 指定时间间隔:用/n,例如*/2代表全时间段每2个单位时间执行;2-8/2代表2-8这个时间区间每2个单位时间执行一次。
  • 以上内容可以组合
    例子:
#1月和2月的1-5号以及10号,在6-13点之间每隔2小时,以及17点,以及15/30/45分执行/home/usr/custom.sh
15,30,45 6-13/2,17 1-5,10 jan,feb *  /home/usr/custom.sh

5. 一次执行多个命令的方法:

  • 5.1 在脚本里写入多个命令
  • 5.2 命令在crontab里面用括号括起来,中间用分号隔开,例如:
#每天7:50开启ssh服务并重启nginx
50 7 * * * (/sbin/service sshd start;systemctl restart nginx)  
  • 5.3 使用run-parts执行指定文件夹内的所有脚本
# 每周日凌晨5:30 执行/etc/cron.weekly文件夹内的脚本
30 5 * * 0 root run-parts /etc/cron.weekly

6. 启动就执行的命令

@reboot起头即可,最好加上延时,以免网络未就绪导致某些脚本无法顺利执行。

@reboot (sleep 60 && /root/start.sh )

7. 修改crontab默认编辑器的方法

在用户profile里面添加一行设置EDITOR环境变量使其生效即可。例如指定为nano:

export EDITOR="/usr/bin/nano"

或者简单粗暴直接临时切换并开始编辑:

export EDITOR="/usr/bin/nano";crontab -e

注意:

  • 执行脚本第一行要加上she-bang,例如#!/bin/bash
  • 脚本要有执行权限
  • 脚本最好是绝对路径,可以避免很多错误

其他:

/var/spool/cron/   #该目录下存放所有用户的cron服务 
/var/log/cron   #记录cron运行的日志信息

参考文献:
Linux之crontab定时任务
Linux crontab 命令

发布了227 篇原创文章 · 获赞 148 · 访问量 34万+

猜你喜欢

转载自blog.csdn.net/toopoo/article/details/104981236
今日推荐