事件起源:昨天值班过程中,应用组同事反馈一台linux机器的/tmp目录下自己放的脚本没有了,而且脚本相对挺重要,瞬时冷汗冒出。
作为一名运维工程师最怕删东西,找值班同事及系统组同事确认后,没有人为清理,不过有人提出了:
tmp不是自动会清理么?
抓紧时间排查后发现是自动丢失,并且,只是删除10天之前的文件….
本来以为是哪位写了一个自动执行脚本, find 了一下10天前的文件删除了….
结果,排查所有用户的crontab 计划,没有任何用户执行了自动脚本
监测了一下服务器登录情况,在删除文件期间也没有任何人登录
最终,通过不懈的百度,终于找到正解
从/var/log/cron 日志中发现,服务器除了调用用户的计划任务外,还会执行系统自己的,比如:
/etc/cron.hourly
/etc/cron.daily
进入 /etc/cron.daily
可以看到一个tmpwatch
cat tmpwatch
flags=-umc
/usr/sbin/tmpwatch “$flags” -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix 240 /tmp
/usr/sbin/tmpwatch “$flags” 720 /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
if [ -d