日期:2014-05-16  浏览次数:20753 次

Linux中的定时任务调度—crontab命令

 

    在linux系统中,有些工作需要周而复始的工作,有些任务需要在某个特定的时间启动工作,这就可以通过crontab这个命令来进行设置,这个文件在/etc/crontab。具体步骤为:

(1)设置任务

    执行命令:crontab  –e  (或者vi /etc/crontab)

(2)在出现的命令行中编辑

    例如设置每每个一段时间去执行 data >> /home/chen/mydata 这个命令

    data命令时显示当前时间,上面则个命令表示将当前时间以追加的方式写入到文件/home/chen/mydata这个文件中。


在上面的编辑器中输入:

* * * * * data >>/home/chen/mydata

然后保存退出,系统便会在每分钟执行一次 data >> /home/chen/mydata 这个命令

 

定时的时间规则是:

           时间          含义             范围

第1个数字:分钟   每小时中的第几分钟执行  0-59

第2个数字:小时   每天的第几个小时执行    0-23

第3个数字:日期   每月的第几天执行        0-31

第4个数字:月份   每年的第几个月执行      0-12

第5个数字:星期   每周的第几天执行        0-6

其他:要执行的命令

例如,如果想在每天的2点执行上述命令,其格式为:

0 2 * * * data >> /home/chen/mydata

 

(3)设置调度多个任务

在设置调度多个任务时,不推荐使用上述方法,因为将所有的命令都写到/etc/crontab中会让人感觉很混乱,可以通过先将命令写成一个可执行文件,然后再通过crontab调用这个可执行文件来实现(即shell编程)。

例如在将时间写入一个文件之后,再将该文件拷贝到其他目录中

首先在/home/chen目录下新建一个文件:vi test.sh

然后输入对应的命令:

data >> /home/chen/mydata

cp /home/chen/mydata /root/

 

然后再:crontab –e

添加一行代码:

0 2 * * *  /home/chen /test.sh

 

(4)终止任务调度命令: crontab –r

(5)显示当前任务调度命令: crontab –l