开发日记——centos定时任务

        由于采购试用的系统不稳定,需要不时重启,在我不在的时候遇到问题没法处理,所以我打算在服务器上加个定时任务重启应用服务。

说到centos上最常用的定时任务应该就是crontab了,我这里记录下使用步骤和遇到的问题。

安装

        一般情况下crond、crontab是安装好的,如果你的服务器上没有crontab,直接用yum去安装crond或者crontab因为你会发现找不到包,其实这个包应该是cronie。

yum install -y cronie

常用命令

        需要区分crond和crontab两个方面的命令,可以把crond理解为服务相关,crontab理解为配置相关。

crond:

  • systemctl start crond 启动服务
  • systemctl stop crond 停止服务
  • systemctl restart crond 重启服务
  • systemctl reload crond 重载配置文件

crontab:

  • crontab -u 设定某个用户的cron服务
  • crontab -l 显示crontab文件(显示已设置的定时任务)
  • crontab -e 编辑crontab文件(编辑定时任务)
  • crontab -r 删除crontab文件(删除定时任务)
  • crontab -i 删除crontab文件提醒用户(删除定时任务)

编辑定时任务

        在加自己的定时任务前先使用 crontab -l 查看一下有没有别人之前已设置好的定时任务,修改的时候不要改动这些内容。

        使用 crontab -e 编辑定时任务,这里讲一下默认的格式:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

用户的定时任务分6段,分别是:分,时,日,月,周,命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
*:表示任意时间都,实际上就是“每”的意思。可以代表00-23小时或者00-12每月或者00-59分
-:表示区间,是一个范围,00 17-19 * * * cmd,就是每天17,18,19点的整点执行命令
,:是分割时段,30 3,19,21 * * * cmd,就是每天凌晨3和晚上19,21点的半点时刻执行命令
/n:表示分割,可以看成除法,*/5 * * * * cmd,每隔五分钟执行一次 

       在最后一行加上自己需要执行的文件(全路径)或者命令即可。在保存退出后需要重启服务,执行: systemctl restart crond 

注意:

        在这里我遇到了一个问题,我写的定时任务是

* */8 * * * systemctl restart 应用服务名

        目的是想让他每8小时重启一次服务,结果发现每到第8小时在这个小时里每分钟都执行了一次重启命令。所以这是个错误的写法。正确写法应该是:

00 */8 * * * systemctl restart 应用服务名 (每8小时0分执行)
或
*/480 * * * * systemctl restart 应用服务名 (每480分钟执行)

查看日志 

        定时任务有执行日志,查看路径为 /var/log/cron 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值