在/home/下面写了一个test.sh
#!/bin/sh
#echo hello > /home/hello.txt
echo "hello hello hello hello" >> /home/hello.txt #还是用这个比较好,追加输出到文件
然后在crontab -e中设置了
*/1 * * * * /home/test.sh
为何等了好几分钟,home下面还是没有hello.txt呢?
指定一下用什么运行
*/1 * * * * sh /home/test.sh
1、crontab -e :编辑定时任务(添加、删除、修改等)
用于设置定时任务,就是就是按照下面的实例添加一行进去。
2、crontab -l:查看当前用户有哪些定时任务(其实也可以用上面-e查看)
注意:这里需要需要切到对应的用户。每个用户对对应自己的crontab列表。
3、vim /var/log/cron 查看历史执行记录
究竟有没有执行,这个也非常重要。
这个应该是最常遇到的问题了。不出如下两个原因:
(1)路径问题
某个或者某些不是绝对路径,极易引发问题。
(2)环境变量问题
可能不加载环境变量这个时候要加载一下。
具体:可以网上搜一些case看看。
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时0~23(0表示0点) 7-9表示:8点到10点之间
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
*/1 * * * * date >> /root/date.txt
上面的例子表示每分钟执行一次date命令
30 21 * * * /usr/local/etc/rc.d/httpd restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/httpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/httpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/httpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/httpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。
1 */1 * * * /usr/local/etc/rc.d/httpd restart
上面的例子每一小时重启apache
* */1 * * * /usr/local/etc/rc.d/httpd restart
上面的例子每分钟重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/httpd restart
上面的例子晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/httpd restart
上面的例子每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/httpd restart
上面的例子一月一号的4点重启apache