天天看点

cron命令安排任务调度

cron命令 基本用法:

1. crontab -l

列出当前的crontab任务

2. crontab -d

删除当前的crontab任务

3. crontab -e (solaris5.8上面是 crontab -r)

编辑一个crontab任务,ctrl_D结束

4. crontab filename

以filename做为crontab的任务列表文件并载入

crontab test.cron

  这样一个crontab 文件就创建好了。可以转到/var/spool/cron目录下面查看,发现多了一个foxy文件。这个文件就是所需的crontab文件。在crontab文件中如何输入需要执行的命令和时间呢?该文件中每行都包括6个域,其中前5个域是指定命令被执行的时间,最后一个域是要被执行的命令。每个域之间使用空格或者跳位字符分隔。格式如下:minute hour day-of-month month-of-year day-of-week commands第1项是分钟,第2项是小时,第3项是一个月的第几天,第4项是一年的第几个月,第5项是一周的星期几,第6项是要执行的命令。这些项都不能为空,必须填入。如果用户不需要指定其中的几项,那么可以使用*代替。因为*是万用字符,可以代替任何字符,所以就可以认为是任何时间,也就是该项被忽略了。

例子:

1.周一到周五每天下午 5:00 寄一封信给 [email protected] : 

0 17 * * 1-5 mail -s "hi" [email protected]  /dev/null 2>&1 即可 (这个未经过实验)

2.#crontab -e

然后写入8 * * * * tar -zcf /home/sunbaigui/backup.tgz /home/sunbaigui/Documents/OSG/

再打入命令#/etc/init.d/cron restart

这样这个任务就建好了,它会在每个时刻的第8分钟执行打包程序

f1 f2 f3 f4 f5 program

其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。

当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推

当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推

当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推

当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推

0~59 表示分

1~23 表示小时

1~31 表示日

1~12 表示月份

0~6 表示星期(其中0表示星期日)

3.在2的基础上将后面的命令写入hello.sh

然后将上面的命令改为16 * * * * /home/sunbaigui/hello.sh

再restart cron 这样它就会在每个时刻的第16分钟执行打包程序

继续阅读