最近開始學習LINUX,關於/tmp檔案夾,
查了些資料,/tmp檔案夾是存放linux臨時檔案的地方,在Linux系統中/tmp檔案夾裡面的檔案會被清空,至於多長時間被清空,如何清空的,可能就不清除了。
在CentOS5.11中,可以利用/etc/cron.daily/tmpwatch 命令來清理/tmp檔案夾
[root@localhost ~]# cat /etc/cron.daily/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 \
-X '/tmp/hsperfdata_*' 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
這個指令碼第一行相當於一個標記(參數),第二行就是針對/tmp目錄裡面排除的目錄,第三行,這是對這個/tmp目錄的清理,下面的是針對其他目錄的清理。
Linux系統中/tmp檔案夾裡面的檔案會被清空,至於多長時間被清空,如何清空的。
今天我們就來剖析一個這兩個問題。
在RHEL\CentOS\Fedora\系統中(本次實驗是在RHEL6中進行的)
先來看看tmpwatch這個命令,他的作用就是刪除一段時間內不使用的檔案(removes files which haven’t been accessed for a period of time)。具體的用法就不多說了,有興趣的自行研究。我們主要看看和這個命令相關的計劃任務檔案。
它就是/etc/cron.daily/tmpwatch,我們可以看一下這個檔案裡面的內容:
#! /bin/shflags=-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 \ -X '/tmp/hsperfdata_*' 10d /tmp/usr/sbin/tmpwatch "$flags" 30d /var/tmpfor d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do if [ -d "$d" ]; then /usr/sbin/tmpwatch "$flags" -f 30d "$d" fidone
第一行相當於一個標記(參數),第二行就是針對/tmp目錄裡面排除的目錄,第三行,這是對這個/tmp目錄的清理,下面的是針對其他目錄的清理,就不說了。
我們就來看/usr/sbin/tmpwatch "$flags" 30d /var/tmp這一行,關鍵的是這個30d,就是30天的意思,這個就決定了30天清理/tmp下不訪問的檔案。如果說,你想一天一清理的話,就把這個30d改成1d。
但有個問題需要注意,如果你設定更短的時間來清理的話,比如說是30分鐘、10秒等等,你可以在這個檔案中設定,但你會發現重新電腦,他不清理/tmp檔案夾裡面的內容,這是為什麼呢。這就是tmpwatch他所在的位置決定的,他的上層目錄是/etc/cron.daily/,而這個目錄是第天執行一次計劃任務,所以說,你設定了比一天更短的時間,他就不起作用了。這下明白了吧。
所以結論是:在RHEL6中,系統自動清理/tmp檔案夾的預設時限是30天。
在Debian\Ubuntu系統中(Ubuntu10.10為實驗環境)
在Ubuntu系統中,在/tmp檔案夾裡面的內容,每次開機都會被清空,如果不想讓他自動清理的話,只需要更改rcS檔案中的TMPTIME的值。
我們看如何來修改
sudo vi /etc/default/rcS
把
TMPTIME=0
修改成
TMPTIME=-1或者是無限大
改成這樣的話,系統在重新啟動的時候就不會清理你的/tmp目錄了。
依此類推,如果說要限制多少時間來更改的話,就可以改成相應的數字(本人沒有測試,我是這麼理解的)。
所以結論是:在Ubuntu中,系統自動清理/tmp檔案夾的時限預設每次啟動。