Linux下tmp文件夾的文件自動刪除的問題(轉)


場景:

近日發現有一台機器tmp文件夾下放置的文件無辜丟失,而且排查發現是自動丟失,並且,只是刪除10天之前的文件。

本來以為是哪位寫了一個自動執行腳本, find了一下10天前的文件刪除了。

結果,排查所有用戶的crontab計划,沒有任何用戶執行了自動腳本。

監測了一下服務器登錄情況,在刪除文件期間也沒有任何人登錄。

解釋:

最終,通過不懈的百度,終於找到正解。

從/var/log/cron日志中發現,服務器除了調用用戶的計划任務外,還會執行系統自己的,比如:

/etc/cron.hourly

/etc/cron.daily

進入/etc/cron.daily

可以看到一個tmpwatch

cat  tmpwatch
#output
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 "$d" ]; then
/usr/sbin/tmpwatch “$flags” -f 720 “$d”
fi
done

可以看到調用了一個叫tmpwatch的腳本,並且,我們可以看到傳入參數中對我們有意義的有/tmp  240

然后我們man tmpwatch

SYNOPSIS

tmpwatch [-u|-m|-c] [-MUadfqstvx] [--verbose] [--force] [--all]

[--nodirs] [--nosymlinks] [--test] [--fuser] [--quiet]

[--atime|--mtime|--ctime] [--dirmtime] [--exclude <path>]

[--exclude-user <user>] <hours> <dirs>

有一個 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=0
SULOGIN=no
DELAYLOGIN=no
UTC=yes
VERBOSE=no
FSCKFIX=no
RAMRUN=no
RAMLOCK=no

紅色字體TMPTIME=0。值為0表示重啟后刪除文件,值為-1就不會自動刪除文件,值為正整數表示/tmp目錄下文件保留時間。

疑問:

1、然后發現tmpwatch在Ubuntu 16.04上是沒有的!然后經過查找發現以上說的實例1針對的是Ubuntu,而解釋是針對CentOS。

2、而啟動時會清除/tmp文件夾是針對Ubuntu,而其它Linux發行版不一定會清除。

3、Ubuntu想要使用tmpwatch需要額外的安裝。

 

參考:

http://www.tuicool.com/articles/6Jj6rq(以上內容部分轉自此篇文章)

http://blog.chinaunix.net/uid-26212859-id-3567875.html(以上內容部分轉自此篇文章)

https://www.chrisyue.com/linux-server-tmp-dir-auto-clean.html

https://askubuntu.com/questions/717661/package-for-tmpwatch(針對Ubuntu的安裝包)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM