记一次crontab定时任务被清空的故障原因定位及复盘过程

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 记一次crontab定时任务被清空的故障原因定位及复盘过程

记一次crontab定时任务被清空的故障原因定位及复盘过程

一、问题描述及事件经过

大年二十九,接到运维值班同事反馈的一个问题:

某生产服务器上的1月17号下午1点左右业务部门运维人员通过堡垒机登录时查看crontab -l定时任务是在的

但是1/18号早上业务部门另外一名运维人员,通过堡垒机登录时查看crontab -l却发现全空了

(图片点击放大查看)

当时已经通过1月17号的堡垒机上的运维日志恢复了crontab定时任务,业务已经修复

但要回溯一下crontab -l被清空的根因, 业务部门一度怀疑17-18号这期间是不是有人绕过堡垒机登录过这台服务器,做过啥运维操作导致crontab定时任务被清空

二、问题原因分析过程

当运维值班同事的这个问题反馈过来后,开始着手分析

1、先排查SSH ACL访问控制,白名单配置文件中没有堡垒机以外的IP地址

为了证明不存在堡垒机绕过的情况,我这里直接GrayLog日志服务器查询了一下这台服务器这个时间区间的SSH登录日志 除了堡垒机IP没有其他IP有登录过服务器的SSH

(图片点击放大查看)

再说了,即使有绕过堡垒机登录的情况,GrayLog也会发送相应的堡垒机绕过告警到运维群里

所以不要怀疑自己这个SSH防堡垒机绕过的安全加固机制,要对自己有信心

2、这时查看堡垒机的1/18号最早的运维日志记录

(图片点击放大查看)

只发现crontab -l 多了一个空格,也只发现这样一个异常

我尝试在Linux虚拟机上做了测试,crontab - l 多了一个空格,这时会话会卡住

这时Ctrl+C直接退出,然后再crontab -l 查看crontab定时任务还是在的

(图片点击放大查看)

3、所以很诡异,问题陷入僵局

根据上面的测试论证,看来多一个空格也不至于说会把crontab定时任务清空哈 所以问题卡住

4、借助搜索引擎

https://blog.csdn.net/Dr_Guo/article/details/123085782
https://www.modb.pro/db/188537

这时不要禁锢在思维定势里,借助搜索引擎尝试找找有没有其他可能性

(图片点击放大查看)

(图片点击放大查看)

(图片点击放大查看)

好家伙,感觉和我现在的问题场景一模一样!

5、在Linux虚拟机下测试论证一下

crontab - l这时卡住了,然后直接关闭SecureCRT,中断SSH会话

然后再登录SSH会话,再查看crontab -l发现果然被清空了

并且/var/log/cron日志也有这个REPLACE关键字

crontab[13022]: (root) REPLACE (root)

(图片点击放大查看)

(图片点击放大查看)

6、然后GrayLog上查询cron日志发现1/18的日志中也有REPLACE关键字

(图片点击放大查看)

那就是这个原因无疑了

三、问题原因总结及后续改进措施

  • 1、问题原因:业务部门运维人员使用了错误的crontab - l 命令(多了一个空格)导致卡住,然后他看这时卡住了,接着直接关闭了这个堡垒机SSH会话,进而导致Crontab所有计划任务被清空
  • 2、问题评价:墨菲定律:你认为越没有可能发生的事情,越有可能发生

有点算一个小黑天鹅事件:虽然某个黑天鹅事件在某个时间点出现是非常小概率的事件,但是生活工作中“黑天鹅”事件是一定会出现的,只是不知道是哪一个或者在哪个时间点

  • 3、如何加固,避免这种现象再次发生
chattr +i /var/spool/cron/root (加锁:禁止修改定时任务)
chattr -i /var/spool/cron/root (解锁:先解锁,才能修改定时任务,避免误操作)
  • 4、当然也可以做告警,当堡垒机操作日志中出现chattr -i /var/spool/cron/root解锁命令时进行告警提醒
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
15天前
|
数据可视化 BI 项目管理
团队任务不再掉链子!一款工具搞定分配与进度追踪
在快节奏的工作环境中,任务管理常面临分配不明确、进度追踪难、信息沟通不畅等问题,严重影响团队效率和项目进度。板栗看板作为一款高效的协同办公软件,通过可视化的任务看板、实时进度追踪、支持多人协作及丰富的模板库,有效解决了这些管理难题,提升了团队协作效率和项目管理能力,特别适用于中小型企业及个人用户。
33 2
|
5月前
|
存储 Windows
删除的视频怎样才能恢复?详尽指南
误删视频别慌,本文概览实用恢复技巧。首要行动:停用涉事存储以防数据覆盖。探索回收站,检索近期删除。备份是宝藏,搜寻云或外置硬盘。软件救星谨慎付费,试用验证。极端情况,专家服务可开盘恢复,代价高昂需权衡。
删除的视频怎样才能恢复?详尽指南
|
4月前
|
运维 监控 安全
自动恢复机制在哪些情况下可能无法正常工作
自动恢复机制在哪些情况下可能无法正常工作
|
4月前
|
C#
C# 跳过值班时间代码逻辑
C# 跳过值班时间代码逻辑
36 0
|
5月前
|
监控 Java 调度
若依修改定时任务,定时任务在系统监控的定时任务当中,宕机情况都不会去管,涉及到定时任务
若依修改定时任务,定时任务在系统监控的定时任务当中,宕机情况都不会去管,涉及到定时任务
|
7月前
|
传感器 自然语言处理 自动驾驶
自动执行与反馈
自动执行与反馈
41 1
|
SQL 关系型数据库 数据库
记一次程序 Bug 导致数据删除的恢复过程
使用RDS、DMS进行数据恢复实践
1004 0
|
存储 测试技术
kindle 应用程序出错,无法启动选定的应用程序,请重试。问题排查过程及处理方案。...
kindle 应用程序出错,无法启动选定的应用程序,请重试。问题排查过程及处理方案。...
541 0
|
SQL 缓存 安全
工作中遇到的小技巧 一(暂停更新)
原来只是在网易博客里整理了一些学习中遇到的小技巧,现在开始在这里慢慢积累希望对大家有所帮助。
工作中遇到的小技巧 一(暂停更新)
|
负载均衡 搜索推荐 Java
定时检测服务状态脚本实现
1、定时监测服务状态需求
234 0