crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活,crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc或者/etc之下的子目录中,而这个文件只能由系统管理员来修改。
crontab文件的每一行均遵守特定的格式,由空格或tab分隔为数个领域,每个领域可以放置单一或多个数值。
crond服务
服务操作说明:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
查看crontab服务状态:
service crond status
手动启动crontab服务:
service crond start
操作符号
在一个区域里填写多个数值的方法:
逗号(',')分开的值,例如:“1,3,4,7,8”
连词符('-')指定值的范围,例如:“1-6”,意思等同于“1,2,3,4,5,6”
星号('*')代表任何可能的值。例如,在“小时域”里的星号等于是“每一个小时”,等等
某些cron程序的扩展版本也支持斜线('/')操作符,用于表示跳过某些给定的数。例如,“*/3”在小时域中等于“0,3,6,9,12,15,18,21”等被3整除的数;
时间设置
注:
1、在“星期域”(第五个域),0和7都被视为星期日。
2、不很直观的用法:如果日期和星期同时被设定,那么其中的一个条件被满足时,指令便会被执行。
3、前5个域称之分时日月周,可方便个人记忆。
从第六个域起,指明要执行的命令。
crontab范例
每五分钟执行
*/5 * * * * root /home/dan/bin/script.sh
每小时执行
0 * * * * root /home/dan/bin/script.sh
每天执行
0 0 * * * root /home/dan/bin/script.sh
每周执行
0 0 * * 0 root /home/dan/bin/script.sh
每月执行
0 0 1 * * root /home/dan/bin/script.sh
每年执行
0 0 1 1 * root /home/dan/bin/script.sh
不发送电子邮件
如果输出结果来自crontab里的命令,那么cron守护进程会用电子邮件将它发给用户。
若想关闭某个命令的输出结果,可以将输出结果重定向至/dev/null。
>/dev/null 2>&1