有一些不可描述的服务,可能在执行时间过长以后出现一些问题,如果设置每天在某个不需要的时刻重启一下,可能是一个很好的解决办法。写好这篇笔记,以后再装服务器的时候就知道如何快速解决问题了。
0x00 修改配置
vim /etc/crontab
打开以后看到的文件是这样子的:
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
如果你仔细读一下英文还是很快就可以理解的,一行就是一个定时脚本任务,
A B C D E F G
对应上面的ABCDEFFG分别代表:
A –> 第几分钟,如果这里填1,代表在60分钟里面,只有第1分钟的时候脚本才会被执行。如果这里填30就代表第30分钟的时候会被执行
B –> 第几小时,如果这里填1,代表在24小时里面,只有第1小时的时候脚本才会被执行。如果A=30,B=1,那么代表会在1:30这个时刻执行脚本
C –> 第几天,这里要注意每个月的天数是不同的哦
D –> 第几个月
E –> 周几,如果你希望是每个周五执行,那么应该设置 C=* D=* E=4,*号表示所有,又因为是按照星期天开始排的,所以4对应周五
F –> 表示执行用户的名字,我一般默认为root
G –> 真正执行的脚本,我的是ssserver -c /etc/shadowsocks.json -d stop & ssserver -c /etc/shadowsocks.json -d start
最后贴上我自己的配置文件,便于我自己后面使用:
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
0 4 * * * root ssserver -c /etc/shadowsocks.json -d stop & ssserver -c /etc/shadowsocks.json -d start
简单解释一下,这个配置就表示每天的四点钟重启一下我那个不可描述的服务
0x01 启用服务
启用服务很简单,首先我们不管之前服务是否有在运行,我们先让它重新加载配置文件
service crond reload
OK以后再启动或者重启一下服务
启动:
service crond start
重启:
service crond restart
最后还有一个简单的停止:
service crond stop
0x02 查看日志
这个有点像nohup,它会在/var/log/cron
这个文件中生成日志文件,我们只需要
tail -f /var/log/cron
就可以看到实时的日志了