linux 定时任务

一. cron任务的自启动相关命令

  1. 检测cron定时服务是否自启用
    systemctl is-enabled crond.service结果展示如下:
    enable表示已启用自启动
    disable标识未启用自启动
  2. 如果未启用,则开启cron自启用systemctl enable crond.service
  3. 如果已经启用,想要cron关闭自启动systemctl disable crond.service
    86f9cbc1e1daa8c0cd0a80383dd2bbf2.png
    df16c7e95e60710d029b344cbd3b767e.png
    附录:linux系统自带服务的启动文件和状态

二. cron服务是否启动相关命令【区别于自启动】

  1. 查看cron服务的启动状态[只有cron的状态是active  running的,才表示cron服务是启动的]
    systemctl status crond.service
    2426c1933e20aaf4253d4c4cae6f8e4f.png

  2. 启动cron服务[命令没有提示]
    systemctl start crond.service

  3. 停止cron服务[命令没有提示]
    systemctl stop crond.service

  4. 重启cron服务[命令没有提示]
    systemctl restart crond.service

  5. 重新加载cron服务[命令没有提示]
    systemctl reload crond.service
    ecad5f8754d39b933de584d890ba8da6.png

三.操作定时任务

  1. 定时任务的编辑
    crontab -e
    编辑内容和centos6;一样。表示每天7.30执行 /mnt/apps/tomcat/tomcat.sh 路径下的脚本
    30 07 * * * /mnt/apps/tomcat/tomcat.sh
    如果在上面,已经把定时任务cron启动了,编辑定时任务后,会有提示
    c49966371b1e13208774b830a6d13818.png

  2. 查看已编辑的定时任务
    crontab -l
    f3cab73c2e2308cd79af9cfd62b4386a.png

  3. 删除已编辑的所有定时任务
    crontab -r
    330702a42a3da7dc9f37435638700b94.png

四.查看定时任务的执行日志

  1. 查看cron执行日志
    tail -f -n 200 /var/log/cron
    4754221b1efc679592c80117d43c1e5f.png

五.最后总结如上述命令,整个cron操作步骤如下

1>编辑了.sh脚本,并保存,记录.sh文件所在路径【一定确保.sh脚本可用,可以尝试在编辑完成.sh文件后,直接./tomcat.sh  执行脚本文件,查看是否可以正常执行】
2>查看并设置cron为自启动
3>查看并启动cron服务,使状态为running
4>编辑并查看cron服务,注意路径和定时格式,确保cron服务编辑成功
5>最后在编辑完成cron服务后,重新加载或重启cron服务,确保cron服务状态是running的6>最后可以通过查看cron执行日志,确保cron是否执行
7>如果cron任务不执行,确保linux服务器系统 时间 和时区 是否正常 

六.cron任务不执行,问题排查

如上,已经确保  第五点中所有 步骤都正确执行了。但是cron定时任务一直没有执行。
我这里出现的原因,是因为服务器的时区设置不正确。
 正确的时区应该是
CST
如果你的时区是
UTC
 或者其他,就导致时间和时区不正确。
我设置的定时任务是17.05执行,结果等到了17.05,定时任务不执行,因为此刻的系统时间是05.05 

解决方法:

timedatectl set-timezone Asia/Shanghai

看看crontab 的时间表达式基本格式 :


1、每分钟执行一次            
*  *  *  *  * 

2、每隔一小时执行一次        
00  *  *  *  * 
or
* */1 * * *  (/表示频率)

3、每小时的15和45分各执行一次 
15,45 * * * * (,表示并列)

4、在每天上午 8- 11时中间每小时 15 ,45分各执行一次
15,45 8-11 * * * command (-表示范围)

5、每个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 command

6、每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command
posted @ 2021-11-24 18:03  Carl-  阅读(40)  评论(0编辑  收藏  举报