定时执行工具
发表于|更新于
|字数总计:377|阅读时长:1分钟|阅读量:
crontab
- Linux crontab是用来
定期执行程序的命令。
当安装完成操作系统之后,默认便会启动此任务调度命令。
crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。 
- 注意:新创建的 
cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。 
1 2 3 4 5 6 7 8 9 10 11 12
   | # 常用参数 -e 设置计时器 -l 列出当前计时器的设置
  *    *    *    *    *      执行命令 -    -    -    -    - |    |    |    |    | |    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0) |    |    |    +---------- 月份 (1 - 12)  |    |    +--------------- 一个月中的第几天 (1 - 31) |    +-------------------- 小时 (0 - 23) +------------------------- 分钟 (0 - 59)
   | 
 
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
   | #列出当前计时器的设置 [root@localhost ~]# crontab -l
  #编写定时器 [root@localhost ~]# crontab -e
 
  # 常用的定义时间问题
  # 每分钟执行 * * * * *
  # 每五分钟执行 */5 * * * *
  # 每小时执行 0 * * * *
  # 每天执行 0 0 * * *
  # 每周执行 0 0 * * 0
  # 每月执行 0 0 1 * *
  # 每年执行 0 0 1 1 *
  # 工作日9点到下午六点每小时提醒一次 0 9-18 * * 1-5 /opt/drink_water.sh
   | 
 
重启使其立即生效
1 2 3
   | /bin/systemctl restart crond.service 或 systemctl restart crond
   | 
 
切割日志问题延伸
详细日志切割解释https://pengyirui.gitee.io/posts/f708.html
1 2 3 4 5
   | 比如我需要使用`/etc/logrotate.d`下的`catalina`切割文件,但不支持每小时切割 此时不能直接 crontab -e 编写 logrotate -vf /etc/logrotate.d/catalina 而是需要 /usr/sbin/logrotate -vf /etc/logrotate.d/catalina
   |