互联网服务crontab执行计划

crontab没有按计划执行

最近发现一个问题:我在crontab里面加了一个定时任务,每天早上8点钟跑一个脚本,生成一个文件,文件里面记录有脚本执行的时间,结果文件的生成时间和文件里面记录的时间比crontab里面设定的执行时间晚了有13个小时。

我已经反复检查crontab设置,没有问题;
检查主机时间也没有问题;
我也做了临时测试,在crontab里面设定一个时间(比主机时间晚一分钟),然后我等脚本执行,还是没有执行;

不知道该从哪里找原因了,各位有没有遇到相似的问题?

这个主机修改过时区,以前是CDT,现在是BEIST-8,修改时区前都是正常的,可能和修改时区有关,

当天时间
#date
Wed Aug  3 11:19:12 BEIST 2011

crontab内容
#crontab -l
30 4 * * * /usr/lpp/diagnostics/bin/run_ssa_link_speed 1>/dev/null 2>/dev/null
06 08 * * *  sh /home/zhangsan/checkout/check.sh


生成文件时间
$ ls -l
total 40
-rw-r--r--   1 root     system        15667 Aug 2 21:00 check.txt
-rwxrwxrwx   1 zhangsan    staff          1904 Jul 15 09:06 check.sh

每天早上8点钟跑的脚本(见下面的cron日志),(脚本手工运行正常,几秒钟就生成文件),放在crontab中执行生成的文件时间是当天晚上9点钟的(见上面一段生成文件时间)

crontab 日志
执行用户为root
#tail -n 1000 /var/adm/cron/log |more
root      : CMD (  sh /home/zhangsan/checkout/check.sh ) : PID ( 344186 ) : Tue Aug  2 08:00:00 2011
root      : CMD ( /usr/lpp/diagnostics/bin/run_ssa_healthcheck 1>/dev/null 2>/dev/null ) : PID ( 241734 ) : Tue Aug  2 08:00:
00 2011
Cron Job with pid: 241734 Successful
Cron Job with pid: 344186 Successful
.
.
.
root      : CMD (  sh /home/zhangsan/checkout/check.sh ) : PID ( 344186 ) : Tue Aug  2 08:00:00 2011(生成的文件时间是Aug  3 21:00:00)
root      : CMD ( /usr/lpp/diagnostics/bin/run_ssa_healthcheck 1>/dev/null 2>/dev/null ) : PID ( 241734 ) : Tue Aug  2 08:00:
00 2011
Cron Job with pid: 241734 Successful
Cron Job with pid: 344186 Successful

mail中没有相关日志
参与59

58同行回答

liu2006liu2006软件开发工程师crc
cron daemon 这个服务应该是在重新启动主机后就已经重启了吧,为什么还要手工杀掉再起才能好呢,搞不懂显示全部
cron daemon 这个服务应该是在重新启动主机后就已经重启了吧,为什么还要手工杀掉再起才能好呢,搞不懂收起
互联网服务 · 2011-08-10
浏览3086
liu2006liu2006软件开发工程师crc
搞定了,杀掉cron daemon ,重新启动就好了显示全部
搞定了,杀掉cron daemon ,重新启动就好了收起
互联网服务 · 2011-08-10
浏览3002
pannixilinpannixilin系统工程师软件公司
。。。。还没有结贴那。。。。。好纠结~~自己胡搞瞎搞一般就搞定了啊 这么纠结的问题~~显示全部
。。。。还没有结贴那。。。。。好纠结~~自己胡搞瞎搞一般就搞定了啊 这么纠结的问题~~收起
系统集成 · 2011-08-10
浏览3009
liu2006liu2006软件开发工程师crc
去搞一下,,,,显示全部
去搞一下,,,,收起
互联网服务 · 2011-08-09
浏览3027
zhenzongjianzhenzongjian软件开发工程师na
还没有结贴呢..80%的原因是环境变量.你要不用at执行一下试试..看看能否执行显示全部
还没有结贴呢..

80%的原因是环境变量.

你要不用at执行一下试试..

看看能否执行收起
互联网服务 · 2011-08-09
浏览2966
liu2006liu2006软件开发工程师crc
用date输出的时间显示全部
用date输出的时间收起
互联网服务 · 2011-08-09
浏览2986
liu2006liu2006软件开发工程师crc
开始时间Mon Aug  8 21:06:00 BEIST 2011结束时间Mon Aug  8 21:06:03 BEIST 2011显示全部
开始时间
Mon Aug  8 21:06:00 BEIST 2011

结束时间
Mon Aug  8 21:06:03 BEIST 2011收起
互联网服务 · 2011-08-09
浏览3022
adyleeadylee系统工程师TC
#tail -n 1000 /var/adm/cron/log |moreroot      : CMD (  sh /home/zhangsan/checkout/check.sh ) : PID ...liu2006 发表于 2011-8-9 11:34 這蠻奇怪的...從你的 log 來看....root      : CMD (  sh /h...显示全部
#tail -n 1000 /var/adm/cron/log |more
root      : CMD (  sh /home/zhangsan/checkout/check.sh ) : PID ...
liu2006 发表于 2011-8-9 11:34


這蠻奇怪的...從你的 log 來看....
root      : CMD (  sh /home/zhangsan/checkout/check.sh ) : PID ( 344186 ) : Tue Aug  2 08:00:00 2011
root      : CMD ( /usr/lpp/diagnostics/bin/run_ssa_healthcheck 1>/dev/null 2>/dev/null ) : PID ( 241734 ) : Tue Aug  2 08:00:00 2011
兩個都是 08:00就由 crontab執行....並沒有延遲 9 小時....
可以在你 check.sh 內第一行及最後一行增加 date >> /home/zhangsan/checkout/chkec_date.log
以便確定實際狀況....收起
互联网服务 · 2011-08-09
浏览3067
liu2006liu2006软件开发工程师crc
#tail -n 1000 /var/adm/cron/log |moreroot      : CMD (  sh /home/zhangsan/checkout/check.sh ) : PID ( 344186 ) : Tue Aug  2 08:00:00 2011root      : CMD ( /usr/lpp/diagnostics/bin/run_ssa_he...显示全部
#tail -n 1000 /var/adm/cron/log |more
root      : CMD (  sh /home/zhangsan/checkout/check.sh ) : PID ( 344186 ) : Tue Aug  2 08:00:00 2011
root      : CMD ( /usr/lpp/diagnostics/bin/run_ssa_healthcheck 1>/dev/null 2>/dev/null ) : PID ( 241734 ) : Tue Aug  2 08:00:
00 2011
Cron Job with pid: 241734 Successful
Cron Job with pid: 344186 Successful

这说明还是很快就执行完了的吧?收起
互联网服务 · 2011-08-09
浏览3428
adyleeadylee系统工程师TC
所以你的 crontab內有排定多個 Jobs , 只有這個 job會比訂的時間延遲9個小時, 其他 jobs 都是在正確時間執行嗎 ? 如果是的話, 可能是 crontab 有異常, 建議將該筆 job 於 crontab 內移除 , 儲存 crontab 後 , 退出 crontab , 再次修改 crontab 增加該 job.如果是"所有 j...显示全部
所以你的 crontab內有排定多個 Jobs , 只有這個 job會比訂的時間延遲9個小時, 其他 jobs 都是在正確時間執行嗎 ? 如果是的話, 可能是 crontab 有異常, 建議將該筆 job 於 crontab 內移除 , 儲存 crontab 後 , 退出 crontab , 再次修改 crontab 增加該 job.
如果是"所有 jobs"都延遲9個小時, 那應該是 cron daemon 有問題啦....收起
互联网服务 · 2011-08-09
浏览3171

提问者

liu2006
软件开发工程师crc
擅长领域: 服务器灾备信息集成平台

相关问题

问题状态

  • 发布时间:2011-07-22
  • 关注会员:1 人
  • 问题浏览:35964
  • 最近回答:2011-08-10
  • X社区推广