Linxu下crontab结合脚本实现定时任务
介绍
有时有些简单的任务我们需要放在服务器上,让服务器帮我们跑,那么我就就可以写shell脚本或python脚本等配置到crontab文件下,让linux定时跑我们想要执行的脚本。
crontab命令详解
crontab命令的功能是在一定的时间间隔调度一些命令的执行
Crontab语法
usage: crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
-s (selinux context)
其中,file是命令文件的名字。如果在命令行中指定了这个文件,那么执行crontab命令,则将这个文件拷贝到crontabs目录下;如果在命令行中没有制定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将他们也存放在crontab目录下。
Crontab格式
一图胜千言
我们可以用crontab -e 添加要执行的命令。 命令执行的结果,无论是标准输出还是错误输出,都将以邮件形式发给用户。
添加的命令必须以如下格式:
* * * * * /command path
前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,即命令字段,其中包括了crontab调度执行的命令。 各个字段之间用spaces和tabs分割。
前5个字段分别表示:
分钟:0-59
小时:1-23
日期:1-31
月份:1-12
星期:0-6(0表示周日)
还可以用一些特殊符号:
*:表示任何时刻
,:表示分割
-:表示一个段,如第二端里: 1-5,就表示1到5点
/n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.
总结
通常业务性比较强的任务调度我们可能会有单独的任务调度框架来处理,比如Quartz,如果是运维监控方面的任务调度我们可以使用crontab结合shell/python脚本来实现。
参考
1、http://www.cnblogs.com/tracy/archive/2011/12/27/2303788.html
2、http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html