linux-crontab定时执行任务
最近碰到一个关于crontab的问题。
1. 事因
服务器部署了一个C++查询数据库词库的服务,以及Java发送目标词的服务,Java服务通过soket长连接向C++服务发送目标单词,然后C++服务返回数据库中是否存在的结果。
期间,由于数据库有时增加单词需要重启服务,手写了个定时脚本来重启该C++服务。
某一次为了调试,把改定时脚本关了,通过ps -ef |grep xxx命令查看服务父子进程情况,发现父进程还是每隔十分钟退出,服务会重启,想了许久不知道哪出了问题。
最后询问运维才想起,之前还用了linux自带的crontab设置过每隔十分钟重启服务,没有删除crontab里面的那条设置。
所以我们就来学习一下linux自带的可设置定时指定任务的crontab。
2. 初识crontab
cron是一个服务进程,cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数crontab -l //列出某个用户cron服务的详细内容crontab -r //删除某个用户的cron服务crontab -e //编辑某个用户的cron服务
3. 基本用法
基本格式 :
* * * * * command
**分 时 日 月 周 命令 **
第1列表示分钟1~59 每分钟用*或者 */1表示 ;
第2列表示小时1~23(0表示0点) ;
第3列表示日期1~31 ;
第4列表示月份1~12 ;
第5列标识号星期0~6(0表示星期天) ;
第6列要运行的命令 。
crontab的一些使用例子:
*/10 * * * * (cd /opt/resin/bin; ./resin.sh restart)
表示每隔10分重启resin服务;
30 1 * * * (cd /opt/resin/bin; ./resin.sh restart)
表示每天1点30分重启resin服务;
* 23-5/1 * * * (cd /opt/resin/bin; ./resin.sh restart)
表示每天23点到次日5点之间每隔1小时重启resin服务。

浙公网安备 33010602011771号