crontab

1、命令格式

*  *  *  *  *  command 

分 时   日  月 周   命令

第5列标识号星期0~6(0表示星期天) 

每分钟用*或者*/1表示


每五分钟执行  */5 * * * *

每小时执行      0 * * * *

每天执行        0 0 * * *

每周执行        0 0 * * 0

每月执行        0 0 1 * *

每年执行        0 0 1 1 *

配置文件/etc/cron.deny    /etc/cron.allow       

所有建立的crontab任务都在 /var/spool/cron/root下


     记住几个特殊符号的含义:

         “*”代表取值范围内的数字,
         “/”代表”每”,
         “-”代表从某个数字到某个数字,
         “,”分开几个离散的数字


2、每次编辑完某个用户的cron设置后,系统会自动将输出发送邮件给当前系统用户,日积月累,非常的多,甚至会撑爆整个系统,所以每条命令命令后面进行重定向处理是非常有必要的。>> /dev/null 2>&1

例如:* * * * * /home/oracle/test.sh >/dev/null 2>&1

/dev/null 代表空设备文件,我们把它理解为一个空文件吧,输出到这里就找不回来了

2>&1 表示执行结果及错误信息。

关于 >/dev/null 2>&1 的解释:

0表示键盘输入

1表示标准输出

2表示错误输出.

&:等同于   

>/dev/null"等同于"1>/dev/null"

/dev/null 2>&1:表示/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。


3、crontab文件的一些例子: 

30 21 * * * /usr/local/etc/rc.d/lighttpd restart 

上面的例子表示每晚的21:30重启apache


45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 

上面的例子表示每月1、10、22日的4 : 45重启apache。


10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart 

上面的例子表示每周六、周日的1 : 10重启apache


使用crontab -e进行编辑,内容为:

*/2 * * * * echo "i am crontab" >> /home/zhang/hello

这样隔两分钟就会往hello这个文件里写i am crontab


crontab -e  编辑crontab 任务

crontab -l  查看crontab任务

/etc/init.d/crond restart  重启crond服务