服务器负载异常升高,检查发现有个每分钟执行的陌生任务。乍看像缓存或者权限的锅,追下去往往不是。

crontab -l
ls -l /etc/cron.*
cat /var/spool/cron/* 2>/dev/null

追下去是这么回事:系统被入侵后攻击者写入定时任务维持控制或拉取新脚本。

碰到「crontab 被篡改」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。

权限不要一口气开到最大,先加到够用再往上试,范围小才好收。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

具体做法是,导出全部用户的任务清单;定位来源脚本与执行内容;清理后检查启动项与密钥。

验收就看一点,陌生任务被清除,负载恢复正常,无新增条目。

作者 9823189