直接用stat查看计划任务相关文件的modify和change时间,结合find -mmin -1440批量筛查24小时内变动的/etc/crontab、/etc/cron.d/、/var/spool/cron/及/etc/cron.ly/下文件,再通过crontab -l、grep脚本名、grep "cmd.脚本名" /var/log/cron等验证调用与执行痕迹。

直接用 stat 查看计划任务相关文件的时间戳(尤其是 Modify 和 Change 时间),结合 cron 服务行为特征,能快速圈定近期被修改或执行过的可疑脚本。关键不是单看时间,而是比对“谁改了、何时改、改了什么、是否被调用”这四点。
盯紧这些 cron 相关路径的 stat 时间戳
Linux 中计划任务的触发逻辑常涉及以下几类文件,它们的 Modify(mtime)和 Change(ctime)时间异常变动是首要线索:
- /etc/crontab 和 /etc/cron.d/ 下所有文件:系统级任务配置,被篡改后会立即影响全局调度
-
/var/spool/cron/ 下各用户 crontab 文件(如
/var/spool/cron/root):用户级定时任务,攻击者常写入隐蔽条目 -
crontab -l 输出中调用的实际脚本路径(如
/opt/scripts/backup.sh):脚本本身被替换或注入,但 crontab 条目没变 - /etc/cron.hourly/ /etc/cron.daily/ 等目录下的可执行文件:系统自动轮询执行,易被植入恶意脚本
用 stat 快速筛选“最近动过”的可疑文件
不用逐个 stat,用 find + stat 组合一次性抓出 24 小时内被修改或状态变更的 cron 相关文件:
find /etc/crontab /etc/cron.d/ /var/spool/cron/ /etc/cron.*ly/ -type f -mmin -1440 -exec stat -c "%n | mtime:%y | ctime:%z" {} \; 2>/dev/null | sort -k4
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
说明:
-
-mmin -1440表示过去 1440 分钟(24 小时)内内容被修改;也可加-cmin -1440同时查 ctime 变更(如权限更改、硬链接数变化等) -
stat -c定制输出,清晰分离文件名、mtime(内容修改)、ctime(元数据变更) - 排序按第 4 列(ctime)可直观看到哪些文件“最晚被碰过”,优先排查
结合 crontab -l 和 atq 看“谁在调用它”
stat 发现某个脚本时间异常,不能只信文件时间——要确认它是否真被计划任务调用:
- 运行
crontab -l -u 用户名或grep -r "脚本名" /etc/cron.d/ /etc/crontab,看是否有对应调度条目 - 检查
atq或systemctl list-timers --all,排除一次性任务(at)或 systemd timer 的干扰 - 若脚本路径出现在 crontab 中,但
stat显示其 mtime 比 crontab 文件新,大概率是脚本被后置替换(例如原为 clean.sh,被换成同名恶意版本)
验证脚本是否真被执行过(看痕迹,不靠猜)
时间戳只是线索,最终要确认“它是否运行过”。除了检查脚本自身日志,还可查系统级证据:
- 查
/var/log/syslog或/var/log/cron中对应时间窗口的执行记录:grep "CMD.*脚本名" /var/log/cron | tail -20 - 用
ausearch -m execve -ts recent | grep 脚本名(需 auditd 开启)看精确执行时间与参数 - 若脚本无日志,临时加一句
echo "$(date) run by $(whoami)" >> /tmp/cron-trace.log再观察一轮周期










