crontab 问题排查

上下文:项目中需要每天将前一天的搜索日志、视频点击量等文件处理生成联想词库的数据源,于是写了个简单的 shell 脚本进行文件处理,生成最终的数据源,同时记录 log,并添加了个 crontab 项每天定时运行。系统:ubuntu 14.04

问题:观察一段时间后,在最初的两三周,脚本一直能够正常运行,但是后来某一天查看日志发现,脚本再某一天之后就一直没有运行过了。

排查:
crontab 配置:
0 7 * * * root bash /home/ubuntu/code/batch.sh &> /dev/null

第一天:首先当然是查看调度日志(crontab 的调度日志默认被输出到 /var/log/syslog 中),发现脚本一直是被正常调度的,也没有出现调度失败的情况。于是拷贝一项配置:

45 10 * * * root bash /home/ubuntu/code/suggest_datasource_gen.py &> /dev/null

到当前时间之后的几分钟,等待看脚本是否被运行,查看调度日志,脚本正常调度,从脚本 log 显示,脚本成功运行,神奇!于是 reload 了一下 cron,等待第二天的奇迹发生。
第二天:登录后从脚本log 看出脚本仍然没有被运行,放开脚本的输出(去掉 &> /dev/null,crontab 调度的任务如果有输出是会以邮件的形式发送到用户邮箱的),reload 脚本,等待奇迹。。
第三天:脚本仍然未被运行,查看 /var/log/syslog,仍然没有任何输出,查看用户邮箱,发现系统没装邮件服务器。。于是用 apt-get 装了个 postfix,奇迹。。
第四天:脚本未被运行,这次可以看出 root 账户收到几封邮件了,邮件显示:

bash: /home/ubuntu/code/batch.sh: No such file or directory

好吧,手动运行这条命令,脚本运行成功。。
想想可能是权限问题,可是 cron 是以 root 权限运行的
上网求祝发现的确有不少人遇到过类似的情况:
https://askubuntu.com/questions/23009/why-crontab-scripts-are-not-working
第一个答案:脚本被调度时的 env 和交互 shell 的 env 不同,有道理!可是为啥之前一段时间可以正常运行呢?想不通
第二个答案:

Although cron requires that each entry in a crontab end in a newline
character, neither the crontab command nor the cron daemon will detect
this error. Instead, the crontab will appear to load normally. However,
the command will never run. The best choice is to ensure that your
crontab has a blank line at the end.

4th Berkeley Distribution 29 December 1993 CRONTAB(1)

握草,我觉得就是这个 bug导致的,给我的配置加上一个\n,等待明天奇迹
第五天:
脚本仍旧未被运行,纳尼。。我觉得需要重装一下系统
然后我添加了一个新任务
0 7 * * * root ls /home/ubuntu/yuzhuo/code/suggest_corpus_generator/batch.sh
看明天输出
第六天:
log 显示:

ls: cannot access /home/ubuntu/code/batch.sh: No such file or directory

手动运行一下显然存在这个文件,胸中一万头草泥马奔腾。。
好吧,假装一下你找不到这个文件吧,于是又添加了若干个相同时间的调度任务:
0 7 * * * root ls /home/ubuntu/code/batch.sh 0 7 * * * root ls /home/ubuntu/code 0 7 * * * root ls /home/ubuntu 0 7 * * * root ls /home 0 7 * * * root ls /
第七天:
答案开始浮出水面:
log 显示

ls: cannot access /home/ubuntu/code/batch.sh: No such file or directory
ls: cannot access /home/ubuntu/code: No such file or directory
ls /home/ubuntu 任务运行成功,输出:Access-Your-Private-Data.desktop
README.txt

显然 /home/ubuntu 目录下不是这些文件,google 一下文件 Access-Your-Private-Data.desktop 的作用,找到如下链接,问题得以解决:
http://techqa.info/ubuntu/question/454309/intermittent-crontab-problem
大致内容就是 ubuntu 支持一种加密文件系统,在没有用户登录的时候,将 /home/ubuntu 给卸载了,导致 crontab 访问不到/home/ubuntu 目录下的文件

Caveats
There are a few minor caveats that one must keep in mind about these encrypted configurations.
When you are not logged into your system, data in your home directory is not accessible in plain text. This, of course, is by design. This is what keeps an attacker from gaining access to your files. However, this means that:

  1. Your cronjobs may not have access to your Home Directory
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容