记一次线上bug:crontab 被意外清空
记一次线上bug:crontab 被意外清空
问题概述
同事反馈,某台服务器的crontab 被清空了.
看了cron运行日志来看,问题出在这里:
Jul 3 10:01:24 10-10-65-235 crontab[19333]: (root) REPLACE (root)
这一时刻被替换掉了,后续就没有任务执行了。
然后紧急恢复备份,并从日志中检查遗漏项。
问题排查
定位出问题后,就从history中找执行的操作。
可从history中没有看到 crontab -r 的操作被执行。
后在Google搜索问题找到一些类似的情况,是由于远程登录、加空格之类的导致的(https://cloud.tencent.com/developer/article/2222953)。
我看了后,就发现这一定是我的锅了,并且受影响的还有其他两台设备。
问题复现
我的操作是从远程服务器通过 ssh 直接执行的命令,卡住之后 ctrl+C中断了操作,于是任务被清空。
复现流程:
创建任务(保证任务列表中有内容,不为空)。
╭─ ~/cmd ▓▒░·······························································░▒▓ 10:29:52 ─╮
╰─ crontab -l ─╯
# Minute Hour Day of Month Month Day of Week who Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat) 20 17 * * 1-5 open "https://tengyun.qianxin-inc.cn/home/workspace/worklog" ╭─ ~/cmd ▓▒░·······························································░▒▓ 10:29:54 ─╮
╰─ ─╯
使用
ssh命令执行能卡住的命令,如crontab或crontab -╭─ ~/cmd ▓▒░·······························································░▒▓ 10:29:54 ─╮
╰─ ssh nanshao@127.0.0.1 crontab ─╯
命令卡住,此刻查看
crontab -l还是有的。╭─ ~/cmd ▓▒░·······························································░▒▓ 10:30:59 ─╮
╰─ crontab -l ─╯
# Minute Hour Day of Month Month Day of Week who Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat) 20 17 * * 1-5 open "https://tengyun.qianxin-inc.cn/home/workspace/worklog" ╭─ ~/cmd ▓▒░·······························································░▒▓ 10:31:02 ─╮
╰─ ─╯
使用
ctrl+C结束掉后检查任务列表。╭─ ~/cmd ▓▒░·······························································░▒▓ 10:29:54 ─╮
╰─ ssh nanshao@127.0.0.1 crontab ─╯
^C%
╭─ ~/cmd ▓▒░··························································░▒▓ 55s 10:31:30 ─╮
╰─ crontab -l ─╯ ╭─ ~/cmd ▓▒░·······························································░▒▓ 10:31:33 ─╮
╰─ ─╯
问题复现成功。
其他测试
- 后又分别在本机直接测试了这些指令,均没有清空任务列表。只有在
ssh操作时,会被清空。 ssh操作中ssh XXX@XXX bash -c "crontab -l"该命令也会被卡住。
总结
产生的操作,弄明白了,但是原理还是没搞明白。
避坑方法:
- 定时备份。
- 在卡住时,不要中断,先备份,在停止掉。
又是一次难忘的经历。
记一次线上bug:crontab 被意外清空的更多相关文章
- 记一次线上bug排查-quartz线程调度相关
记一次线上bug排查,与各位共同探讨. 概述:使用quartz做的定时任务,正式生产环境有个任务延迟了1小时之久才触发.在这一小时里各种排查找不出问题,直到延迟时间结束了,该任务才珊珊触发.原因主要就 ...
- 解Bug之路-记一次线上请求偶尔变慢的排查
解Bug之路-记一次线上请求偶尔变慢的排查 前言 最近解决了个比较棘手的问题,由于排查过程挺有意思,于是就以此为素材写出了本篇文章. Bug现场 这是一个偶发的性能问题.在每天几百万比交易请求中,平均 ...
- 「日常开发」记一次因使用Date引起的线上BUG处理
生活中,我们需要掌控自己的时间,减少加班,提高效率:日常开发中,我们需要操作时间API,保证效率.安全.稳定.现在都2020年了,了解如何在JDK8及以后的版本中更好地操控时间就很有必要,尤其是一次线 ...
- 线上bug的解决方案--带来的全新架构设计
缘由 本人从事游戏开发很多年一直都是游戏服务器端开发. 因为个人原因吧,一直在小型公司,或者叫创业型团队工作吧.这样的环境下不得不逼迫我需要什么都会,什么做. 但是自我感觉好像什么都不精通..... ...
- 程序员如何描述清楚线上bug
案例 一个管理后台的bug,把操作记录中的操作员姓名,写成了该操作员的id.原因是修改了一个返回操作人姓名的函数,返回了操作人的id.但是还有其他地方也用这个函数,导致其他地方把姓名字段填写成了操作员 ...
- 线上bug分析
昨天下午大神把组内几十号人召集在一起开Online bug分析大会,主要是针对近期线上事故从事故原因和解决方案两个维度来分析. 对金融软件来说,每一次的线上事故都有可能给公司带来重大的损失,少扣了用户 ...
- 听说”双11”是这么解决线上bug的
听说"双11"是这么解决线上bug的 --Android线上热修复的使用与原理 预备知识和开发环境 Android NDK编程 AndFix浅析 Android线上热修复的原理大同 ...
- 线上bug或故障界定及填写规范
[线上故障与线上Bug界定] 一.线上故障: 1. 故障参照公司规范稍做调整: a) 1级故障:资讯首页或主App首页无法打开:多条业务线同时不可用:超过15分钟: b) ...
- 关于线上bug
之所以想写下线上bug,因为发觉有些公司对线上bug的处理是比较严格甚至是很苛刻,涉及到的相关人可能会因此而背黑锅. 之所以会存在这样情况,因为公司各部门都有关联,特别是用户.老板的投诉,也给公司会造 ...
- 记录一次线上bug
记录一次线上bug,总的来说就是弱网和重复点击.特殊值校验的问题. 测试场景一: 在3g网络或者使页面加载速度需要两秒左右的时候,输入学号,提交学生的缴费项目,提交完一个 学生的缴费后, ...
随机推荐
- 升级:Logical Upgrade升级MySQL5.6.26
升级需谨慎,事前先备份 MySQL升级的实质是对数据字典的升级,数据字典有:sys.mysql.information_schema.performance_schema . MySQL升级的两种方式 ...
- JS 对输入框进行限制(常用的都有)
文章来源 http://www.soso.io/article/24096.html 1.文本框只能输入数字代码(小数点也不能输入) 代码如下: <input οnkeyup="thi ...
- 手把手逐步解析Javaweb登录实例
一.编写前端界面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- MyQR--生成个性二维码
1.二维码定义: 二维码(2-Dimensional Bar Code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的.它是指在一维条码的基础上扩展出另一 ...
- 吃透Redis面试八股文
Redis连环40问,绝对够全! Redis是什么? Redis(Remote Dictionary Server)是一个使用 C 语言编写的,高性能非关系型的键值对数据库.与传统数据库不同的是,Re ...
- 用Aspose-Java免费实现 PDF、Word、Excel、Word互相转换并将转换过得文件上传OSS,返回转换后的文件路径
嘿嘿嘿.嘿嘿,俺又回来了! github代码地址 https://github.com/Tom-shushu/work-study 接口文档有道云 https://note.youdao.com/s/ ...
- Python工具箱系列(三十)
PostgreSQL MySQL的口号是"世界上最流行的开源关系型数据库",而PostgreSQL的Slogan则是"世界上最先进的开源关系型数据库(PostgreSQL ...
- 数据结构与算法大作业:走迷宫程序(C语言,DFS)(代码以及思路)
好家伙,写大作业,本篇为代码的思路讲解 1.大作业要求 走迷宫程序 问题描述: 以一个 m * n 的长方阵表示迷宫, 0和1分别表示迷宫的通路和障碍. 设计一个程序, 对任意设定的迷宫, 求出一 ...
- 2022-11-30:小红拿到了一个仅由r、e、d组成的字符串 她定义一个字符e为“好e“ : 当且仅当这个e字符和r、d相邻 例如“reeder“只有一个“好e“,前两个e都不是“好e“,只有第三个
2022-11-30:小红拿到了一个仅由r.e.d组成的字符串 她定义一个字符e为"好e" : 当且仅当这个e字符和r.d相邻 例如"reeder"只有一个&q ...
- 2022-11-20:小团生日收到妈妈送的两个一模一样的数列作为礼物! 他很开心的把玩,不过不小心没拿稳将数列摔坏了! 现在他手上的两个数列分别为A和B,长度分别为n和m。 小团很想再次让这两个数列变
2022-11-20:小团生日收到妈妈送的两个一模一样的数列作为礼物! 他很开心的把玩,不过不小心没拿稳将数列摔坏了! 现在他手上的两个数列分别为A和B,长度分别为n和m. 小团很想再次让这两个数列变 ...