本文共 1775 字,大约阅读时间需要 5 分钟。
场景:
近日发现有一台机器tmp文件夹下放置的文件无辜丢失,而且排查发现是自动丢失,并且,只是删除10天之前的文件。
本来以为是哪位写了一个自动执行脚本, find了一下10天前的文件删除了。
结果,排查所有用户的crontab计划,没有任何用户执行了自动脚本。
监测了一下服务器登录情况,在删除文件期间也没有任何人登录。
解释:
最终,通过不懈的百度,终于找到正解。
从/var/log/cron日志中发现,服务器除了调用用户的计划任务外,还会执行系统自己的,比如:
/etc/cron.hourly
/etc/cron.daily
进入/etc/cron.daily
可以看到一个tmpwatch
cat tmpwatch#outputflags=-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/tmpfor d in /var/{ cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; doif [ -d "$d" ]; then/usr/sbin/tmpwatch “$flags” -f 720 “$d”fidone
可以看到调用了一个叫tmpwatch的脚本,并且,我们可以看到传入参数中对我们有意义的有/tmp 240
然后我们man tmpwatch
SYNOPSIStmpwatch [-u|-m|-c] [-MUadfqstvx] [--verbose] [--force] [--all][--nodirs] [--nosymlinks] [--test] [--fuser] [--quiet][--atime|--mtime|--ctime] [--dirmtime] [--exclude][--exclude-user ]
有一个 hours
240 = 10*24正好是10天
具体原因是tmp是一个特殊的文件夹,系统会自动清理,所以大家最好不要把文件放到这个地方,被清理了就不好了。
实例:
1、重启电脑时自动清除/tmp文件夹下的内容,设置不删除。
/tmp目录文件重启后自动删除现在知道有Ubuntu和Solaris系统。
经常会把临时性的log或抓包等文件放在/tmp目录下,重启后发现文件都丢失了。查下资料发现,可以通过设置解决这个问题。
在/etc/default/目录下有个rcS文件,文件内容如下:
## /etc/default/rcS## Default settings for the scripts in /etc/rcS.d/## For information about these variables see the rcS(5) manual page.## This file belongs to the "initscripts" package.TMPTIME=0SULOGIN=noDELAYLOGIN=noUTC=yesVERBOSE=noFSCKFIX=noRAMRUN=noRAMLOCK=no
红色字体TMPTIME=0。值为0表示重启后删除文件,值为-1就不会自动删除文件,值为正整数表示/tmp目录下文件保留时间。
疑问:
1、然后发现tmpwatch在Ubuntu 16.04上是没有的!然后经过查找发现以上说的实例1针对的是Ubuntu,而解释是针对CentOS。
2、而启动时会清除/tmp文件夹是针对Ubuntu,而其它Linux发行版不一定会清除。
3、Ubuntu想要使用tmpwatch需要额外的安装。
参考:
(以上内容部分转自此篇文章)
(以上内容部分转自此篇文章)
(针对Ubuntu的安装包)
==>如有问题,请联系我:easonjim#163.com,或者下方发表评论。<==转载地址:http://hcjpx.baihongyu.com/