Linux CentOS7定时执行Shell脚本-cron服务

Linux的定时执行任务是cron服务实现的。

crontab是一个命令,该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
而crond正是它的守护进程。cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务。

  1. 写一个要定期执行的shell脚本
    在这里插入图片描述

  2. 配置cron服务,实现定期执行任务【图出处链接
    在这里插入图片描述
    例如:

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每月1、10、22日的4 : 45重启apache。

crond定时方式的配置

方式1:vim /etc/crontab 在最后一行加上定时任务的配置
在这里插入图片描述

修改crontab的配置后需要重启crontab,使配置生效

/bin/systemctl restart crond.service

方式2:直接用crontab -e,进入一个类似于vim的编辑界面,不需要指定用户,如果是root权限,默认是root定时的

在这里插入图片描述

如果cron是启动的状态,crontab -e配置后保存退出,会出现如下的提示:

在这里插入图片描述

脚本定时执行配置完成,执行结果如下:

在shell脚本中写的重定向的路径/home/shell_dir/下生成aaa.txt文件
在这里插入图片描述
注意:CentOS7 上的 cron相关命令和 CentOS6上的cron命令不一样。
详见:linux下定时重启tomcat 【CentOS 6.4】【CentOS 7.6】

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

  1. 检测cron定时服务是否自启用
systemctl is-enabled crond.service
enable表示已启用自启动
disable标识未启用自启动
  1. 如果未启用,则开启cron自启用
systemctl enable crond.service
  1. 如果已经启用,想要cron关闭自启动
systemctl disable crond.service

在这里插入图片描述
二.cron服务是否启动相关命令【区别于自启动】

1.查看cron服务的启动状态

systemctl status crond.service

在这里插入图片描述

2.启动cron服务[命令没有提示]

systemctl start crond.service

3.停止cron服务[命令没有提示]

systemctl stop crond.service

4.重启cron服务[命令没有提示]

systemctl restart crond.service

5.重新加载cron服务[命令没有提示]

systemctl reload crond.service

三. crontab 相关命令
crontab -u //设定特定用户的定时服务
crontab -l //列出当前用户定时服务内容

在这里插入图片描述

crontab -r //删除当前用户的定时服务
在这里插入图片描述

crontab -e //编辑当前用户的定时服务

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

tail -f -n 10 /var/log/cron

在这里插入图片描述

五.最后总结

如上述命令,整个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定时任务仍不执行,考虑是否是时区问题:
在这里插入图片描述
正确的时区应该是

CST
如果你的时区是

UTC
可以修改服务器时区

上述部分内容来自博客【https://www.cnblogs.com/sxdcgaq8080/p/10730633.html
感谢博主分享,很有收获!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值