目录
一 事件概述
又是令人犯困的周一早晨,周末zabbix网点一些误告警问题昨晚又出现了,今天又得开始排查原因,其中有一个怀疑是跟服务器的定时任务有关,于是我开始用“远程工具”查询一下定时任务,于是 一波未平一波又起~
第一次查的时候 敲了 crontab - l (因为是在zabbix中一个check上面远程过去,敲完一直转圈圈,心里开始有种不详的预感。)
加上又是临近中午,敲完,我退出后,继续重新进去查询一会,这会很快,马上反馈给我一个空值,奇怪之前还能查的,怎么这会将查询不了了,而且确定敲的是-l,而不是什么-r删除,有点懵逼。
于是我想到还有另一台zabbix check服务器,我登录上去看,刚巧上面有个监控项就是监控该服务器的定时任务的,看了一下,之前也都还是正常取值的,这个11:30后就取不到值了呢?不会怎么巧吧?
二 问题排查
又在check上面测试执行了几次,还是没有反馈值,令人不解,马上就到了干饭时间,就先去干饭了。
下午回来后,为了确定是不是敲错命令了,又特意去查看一下history记录,结果没查到命令(这是因为我用check查的原因),因为这个小插曲,我又开始怀疑是check的问题,开始各种检查zabbix 的check,发现查询其它各种命令又是正常的,令人不解。
时间一点点过去,又上网去查验证定时任务有没有存在的方法,发现定时任务下有个用户文件,专门记录定时任务的,命令如下
tail -f /var/log/cron
但我用tail去查询后,确实查到目录下有我在用的这root用户,不过当打开里面东西时候却是一片空白。
此时已经可以确定定时任务 是由于某种原因被全清空了。
三 发现问题
还好有之前的定时任务记录,区别原封不动加上去后,开始查找原因。
开始在网上查找有关crontab 可能被清空的原因,看到一篇文章说
“使用远程连接Q工具使用crontab时,如果遇到网络波动等情况意外中止,就会清空所有任务。”
因为我用的check也是一种远程的ssh方式,加上好像之前敲完里面一直转圈圈就被我叉掉了,估计就是这个原因了。
四 复原故障原因
打开模拟器,开始进行测试,果然如此,使用远程,敲命令的时候如果多了空格,就会导致清空定时任务!!!
建议使用远程工具去查询定时任务的小伙伴一定要小心,尽不用直接用crontab - l去查询,可以查询/var/log/cron 这种方式去查看定时任务,以防万一。