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服务