【linux定时执行脚本】Linux定时任务没有执行问题分析与总结

时间:2019-08-19  来源:邮件  阅读:

昨天晚上让运维帮我更新上线了一个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

每天执行/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命令。

【linux定时执行脚本】Linux定时任务没有执行问题分析与总结

http://m.bbyears.com/jsp/63002.html

推荐访问:linux定时任务crontab
相关阅读 猜你喜欢
本类排行 本类最新