crontab命令
查看定时任务列表
crontab -l
查看Crontab状态
service crond statussystemctl status cron # ubuntuntsysv #查看crontab服务是否已设置为开机启动chkconfig –level 35 crond on #加入开机自动启动
查看日志
ubuntu中定时日志通常在:/var/log/cron.log以上cron没有的话,可通过以下命令查看:grep CRON /var/log/syslog# 查看 cron 服务的完整日志journalctl -u crond.service # centosjournalctl -u cron.service # ubuntu# 实时跟踪 cron 日志(类似 tail -f)journalctl -u crond.service -f # centosjournalctl -u cron.service -f # ubuntu
添加/编辑/删除定时任务:
编辑:crontab -e删除:crontab -e后 用dd命令删除后,wq命令保存i #默认文字编辑器为vim,按i字母键即可添加cron任务30 3 * * * /usr/local/etc/rc.d/lighttpd restart #将命令代码放入,此命令意义为每天的03:30 重启apacheESC #按ESC键退出编辑模式:wq #键入:wq保存service crond restart # 重启crontab服务systemctl restart cron # ubuntu
- - - - -| | | | || | | | +——- 星期中星期几 (0 - 6) (星期天 为0)| | | +————— 月份 (1 - 12)| | +———————- 一个月中的第几天 (1 - 31)| +—————————— 小时 (0 - 23)+————————————- 分钟 (0 - 59)
示例
* * * * * # 表示每1分钟*/2 * * * * # 表示每2分钟0 */2 * * * # 表示每2个小时第0分钟
在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup:
0 6-12/3 12 /usr/bin/backup
周一到周五每天下午 5:00 寄一封信给 alex@domain.name:
0 17 1-5 mail -s “hi” alex@domain.name < /tmp/maildata
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分….执行 echo “haha”:
20 0-23/2 echo “haha”
下面再看看几个具体的例子:
*/30 * * * * /usr/sbin/ntpdate cn.pool.ntp.org #每半小时同步一下时间0 */2 * * * /sbin/service httpd restart #每两个小时重启一次apache50 7 * * * /sbin/service sshd start 意思是每天7:50开启ssh服务50 22 * * * /sbin/service sshd stop 意思是每天22:50关闭ssh服务0 0 1,15 * * fsck /home 每月1号和15号检查/home 磁盘1 * * * * /home/bruce/backup 每小时的第一分执行 /home/bruce/backup这个文件00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30执行一次ls命令30 21 * * * /usr/local/etc/rc.d/lighttpd restart #每晚的21:30 重启apache45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart #每月1、10、22日的4 : 45重启apache10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart #每周六、周日的1 : 10重启apache0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart #每天18 : 00至23 : 00之间每隔30分钟重启apache0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart #每星期六的11 : 00 pm重启apache* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart #晚上11点到早上7点之间,每隔一小时重启apache* */1 * * * /usr/local/etc/rc.d/lighttpd restart #每一小时重启apache0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart #每月的4号与每周一到周三的11点重启apache0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart #一月一号的4点重启apache
