技术成就梦想

代码如诗

原 LINUX 定时任务 crontab 林夏夕

2017年9月10日 nginx 0

定时任务,是系统服务级别的东西,WIN和linux下实现方法不同。windows,也有计划任务可用。

位置一般在/var/spool/cron/下,如果你是root用户,那下面有个root文件,建议日常备份,避免误删除导致crontab 文件丢失;

默认情况下,crontab中执行的日志写在/var/log下,如:

# ls /var/log/cron*

/var/log/cron /var/log/cron.1 /var/log/cron.2 /var/log/cron.3 /var/log/cron.4crontab的日志比较简单,当crond执行任务失败时会给用户发一封邮件。恰巧在我们的一台服务器上发现一个任务没有正常执行,而且crond发邮件也失败了。通过看mail的日志,看到是磁盘空间不足造成的。
可以将每条 crontab中的任务增加自己的日志,有利于查找执行失败原因。
0 6 * * * //root/script/ss.sh >> /root/for_crontab/mylog.log 2>&1
把错误输出和标准输出都输出到mylog.log中。

如crontab 没有成功,检测crontab 服务是否启动,

# /etc/init.d/crond status 
# /etc/init.d/crond restart

cron 是系统守护进程,位置:/etc/init.d/crond    参数:start|stop|restart|reload

 

crontab -l : 列出用户目前的crontab。

crontab -e : 编辑用户目前的crontab。

crontab -r : 删除目前的时程表

基本格式:

*  *  *  *  *  command 

分 时 日 月 周 命令 

第1列表示分钟1~59 每分钟用*或者 */1表示 

第2列表示小时1~23(0表示0点) 

第3列表示日期1~31 

第4列表示月份1~12 

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

第6列要运行的命令 

#svn update  每1分钟更新一遍svn
* * * * *  /usr/bin/svn co svn://121.42.199.75/jiaoyou /www/web/jiaoyou/public_html --username liuyanyan --password 123456

#每1分钟访问该网址
* * * * * curl  http://peachebaby.ejucheng.net/wechat.php/Special/refresh

#每晚的21:30重启apache
30 21 * * * /usr/local/etc/rc.d/lighttpd restart

#每月1、10、22日的4 : 45重启apache
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

#每周六、周日的1 : 10重启apache
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

#在每天18 : 00至23 : 00之间每隔30分钟重启apache
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

#每星期六的11 : 00 pm重启apache
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

#晚上11点到早上7点之间,每隔一小时重启apache
0 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

#每月的4号与每周一到周三的11点重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

#一月一号的4点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart