
点击上方 蓝字 加个关注


吐槽环节
公司最近在搞积分制管理,知识积累作为一个积分项,我会输出一些来换取积分
对于有一些因为各种理由没有算分,我又花了很多精力编写,而且我认为还是比较常见或者诡异的问题,会发到公众号里当做一个记录,算不算分就无所谓了

文档编写说明
Linux的Crontab是自动任务列表,管理着一台服务器上都跑了哪些任务
有的时候会出现明明设置好的Crontab列表,突然之间就不见了
去年也给某个项目组看过这样的问题,当时项目组怀疑是不是操作系统的问题,经过查看后并不是,现整理文档说明此种情况的产生原因

验证过程
1、首先建立好一个sh脚本,里面是什么内容并不重要,我这里建立了一个test_cron.sh;
[root@localhost ~]# more test_cron.sh
123
[root@localhost ~]#
复制
2、Linux下有2个日志,记录了crontab和系统日志,先清空一下这两个日志,方便测试观察信息;
echo>/var/log/cron
echo>/var/log/messages
复制
3、新建一个crontab任务,跟踪日志,建立完一个任务保存退出,日志里输入图中内容
crontab -e
0 * * * * sh /root/test_cron.sh
复制
4、输入crontab -l 查看刚刚新建的自动任务,可以看到,同时/var/log/cron中多输出一行
5、继续模拟,这次只敲crontab命令,然后敲完快速关闭crt窗口,从日志的信息上看到,多了一个REPLACE
6、再输入crontab -l看一下,发现之前存在的crontab消失了
结论



经过测试,对crontab命令不熟悉的人,或者网络情况不理想的情况下操作crontab会产生此情况
输入crontab,发现没有反应后,直接关闭crt窗口
正确的方法应该是:按ctrl+c退出,
直接关闭CRT窗口会触发crontab的REPLACE动作,导致列表被清空
在我的阿里云服务器上实验,未实验出来这种效果,可能阿里云的服务器是专线网络,也可能在高版本的内核中此问题被修复

文章转载自小西瓜的技术之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。