当前位置:首页 > linux教程 > 列表

Linux定时任务没有执行问题分析与总结

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-25 16:03:01 浏览: 评论:0 

Linux定时任务正常的情况下是不可能不执行的,但是小编今天发现在centos中定时任务发现没有执行了,下面就和小编一起来看问题分析与解决办法.

昨天晚上让运维帮我更新上线了一个shell脚本,并添加到定时任务中准备凌晨12点06分执行,当我早上5点17醒来的时候,总感觉不对就去查邮件看看定时任务是否执行了,一看没有执行,然后直接远程到服务器,发现脚本执行只用了6秒,说明脚本是被调用了,那么就直接排除了缺少执行权限的问题,那到底是什么问题呢?随后又手动执行了一次,发现报错说脚本中有回车换行符,奇怪了,突然明白是windows和linux的编码格式不一样,马上用dos2unix对文件进行了转码,再执行,一切正常了,这点值得注意.

现在总结一下:

定时任务没有被执行有以下两种可能.

1、被执行的脚本没有执行权限,这种情况 直接授权.

chmod 755 xxx.sh

2、被执行的脚本编码有问题,这种情况直接转码.

dos2unix xxx.sh

我们也可下载一个windows版的dos2unix,转完码后再上传到Linux服务器.

补充:linux定时任务

每天早上6点

0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了.

每两个小时

0 */2 * * * echo "Have a break now." >> /tmp/test.txt

晚上11点到早上8点之间每两个小时和早上八点:

0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * 1-3 command line

1月1日早上4点

0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/

每小时执行/etc/cron.hourly内的脚本

01 * * * * root run-parts /etc/cron.hourly --phpfensi.com

每天执行/etc/cron.daily内的脚本

02 4 * * * root run-parts /etc/cron.daily

每星期执行/etc/cron.weekly内的脚本

22 4 * * 0 root run-parts /etc/cron.weekly

crontab权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在

用法如下:

1、如果两个文件都不存在,则只有root用户才能使用crontab命令。

2、如果cron.allow存在但cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令,如果root用户也不在里面,则root用户也不能使用crontab.

3、如果cron.allow不存在,cron.deny存在,则只有列在cron.deny文件里面的用户不能使用crontab命令,其它用户都能使用.

4、如果两个文件都存在,则列在cron.allow文件中而且没有列在cron.deny中的用户可以使用crontab,如果两个文件中都有同一个用户,以cron.allow文件里面是否有该用户为准,如果cron.allow中有该用户,则可以使用crontab命令.

Tags: Linux定时任务 Linux任务执行

分享到: