Linux crontab

crontab命令用于设置周期性被执行的指令

请注意系统时间是UTC

linux缺省会启动crond进程
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

 

查看crond服务是否已经运行用
ps -ax | grep crond

 

 

$ cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

 

基本格式 : 
*  *  *  *  *  command 
分 时 日 月 周 命令 
第1列表示分钟1~59 每分钟用*或者 */1表示 
第2列表示小时1~23(0表示0点) 
第3列表示日期1~31 
第4列表示月份1~12 
第5列标识号星期0~6(0表示星期天) 
第6列要运行的命令 

 

周与日月不可同时并存

分 时 日 月 周
0 1 * * * /tmp/a.sh 每天执行
0 1 * * 1,2,3,4,5 /tmp/a.sh 周一到周五,凌晨一点,执行
0,30 20-23 * * * /tmp/a.sh 20点到23点,每隔半个小时,执行一次
* */1 * * * /tmp/a.sh 每隔一个小时,执行一次
* 20-23/1 * * * /tmp/a.sh 20点到23点,每隔一个小时,执行一次

crontab -1 列出用户的所有任务
crontab -e 编辑任务,使用的是vi编辑器
crontab -r 删除所有任务

 

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed

用C1、C2、C3、C4、C5、C6代表这六列,前面五列通过组合方式来决定执行脚本的频率,最小频率为每分钟执行一次,

其中Cn可以用 * ; */n ; T1-T2; a,b,c; 四种形式来表示:

当 C1 为 * 时表示每分钟都要执行脚本,C2 为 * 时表示每小时都要执行程式,依次类推.....

当 C1 为 T1-T2 时表示从第 T1 分钟到第 T2 分钟这段时间内要执行,C2 为 T1-T2 时表示从第 T1 到第 T2 小时都要执行,依次类推....

当 C1 为 */n 时表示每 n 分钟的时间间隔执行一次,C2 为 */n 表示每隔n小时的间隔执行一次,依次类推.....

当 C1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,C2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,依次类推....

 

每个用户都会生成一个自动生成一个自己的crontab文件,一般位于/var/spool/cron目录下

 

cron.deny 与 cron.allow文件

/etc/cron.deny 表示不能使用crontab 命令的用户

/etc/cron.allow 表示能使用crontab的用户。

posted @ 2015-01-11 16:00  智能先行者  阅读(160)  评论(0编辑  收藏  举报