初衷是想着写一下笔记,但是存电脑感觉很少会去看,而且太随意了,于是存在这里,其它有兴趣的朋友也能看到。
这次记录一下crontab的使用方式。
什么是crontab?
crontab(cron table) 是Linux上面一个调度文件的小软件,使用终端就可以进行操作,非常小巧精致。
安装crontab:
终端键入 yum install -y vixie-cron
crontab调用方法:
终端键入 service crond start 启动服务
继续输入 crontab -e 开始编辑文本
文本格式: * * * * * command
前面5个星号分别代表: 某分钟 某小时 某天 某月 一周的某个日,后面跟着要干的事command
某分钟0~59 某小时0~23 某天1~31 某月1~12 星期某0~6(0表示星期天)
注意:不同的时间单位用空格分开,相同的时间单位用逗号分开。
例:
5,20 7 * 1-3 1,3,5 sh restartQQ.sh
(* * * * * cmd)
这条意思是,在1-3月期间,每周的周一,周三,周五,这三天的每天早上7点5分和7点20分,
执行重启QQ这个脚本。
再举一个栗子吧:
* * * * * sh job.sh > job.log
每分钟都执行job.sh这个任务,输出和报错都放进job.log里
我在这条命令中使用了 > 符号,意思是覆盖原有日志,有时候如果担心日志内容过多,就可以这样用,
而如果日志内容少,或者必须长期记录日志,用 >> 符号即可。
注意:一般都在crontab中调用shell脚本,用该shell调用其他文件,当然也可以直接执行命令,比如python job.py
还有,记得在shell中导入环境变量:
source /etc/profile
source ~/.bash_profile
#后面添加其它命令
#比如 python job.py
以上便是crontab的简单使用。
作为一个轻便的调度工具,它有很多限制,比如多个工作前后依赖的情况,循环的情况等。
那么出离题外,给大家介绍一下Azkaban这个工具,类似crontab,却是一个更加完善的调度工具,
具体请参见 http://azkaban.github.io/azkaban/docs/latest/