首頁 > 系統教程 > Linux > 主體

/tmp/資料夾在Linux系統中的清理原理及tmp檔案的作用

WBOY
發布: 2023-12-21 17:36:17
轉載
2829 人瀏覽過

.tmp 文件大部分都是因為不正常關機、或死機後所留下的文件,這些臨時的暫存盤,在你重新開機後,已經沒有任何的用途,可以放心刪除。大家在使用Windows作業系統的時候,可能會常在C盤根目錄發現一些後綴名為TMP的文件,也會在Windows目錄裡發現一個TEMP的目錄,TMP檔案是各種軟體或系統產生的暫存文件,也就是常說的垃圾檔案。 Windows產生的臨時文件,本質上和虛擬記憶體沒什麼兩樣,只不過臨時文件比虛擬記憶體更具針對性,單獨為某個程式服務而已。而它的專一性導致了許多新手對他望而生畏,不刪佔據空間,刪了又怕導致程式無法運作。

Windows 在長年累月的使用之下,在Windows\Temp 裡一定會多出很多的「垃圾」,其實這Temp 裡的所有的檔案、或資料夾都是可以刪除的,有空不妨常常清理下這個Temp 資料夾,但要留意一下,我指的是刪除Temp 裡的東西(Temp 資料夾還是保留的),不是要你把整個Temp 連資料夾一起刪掉。當你在刪除 Temp 裡面的文件的時候,你可能會遇到「存取拒絕」的錯誤訊息,不要緊,這是很正常的。

因為某些是目前的暫存盤,Windows還在使用中,你跳過出現存取拒絕訊息的文件,繼續刪除其它的文件即可. 一般來說,你目前運行著大型的工具軟體的時候,都不應該去碰臨時文件,例如Photoshop會在處理圖形時候產生巨大的臨時文件,如果你認為這不是你創建的文件企圖刪除,可能會導致Photoshop當機。你目前沒有執行程式的話,發現的臨時檔案都可以刪除,以免它們天長日久堆積如山,佔據磁碟空間還是小事,關鍵是它們又多又散亂,會給磁碟掃描整理帶來時間上的無謂消耗,也可能會造成文件分配表混亂,導致文件交叉連結的錯誤。但是不能所有的臨時文件都一概而論。例如,C盤根目錄的TEMP目錄,是許多工具程式臨時檔案的指向目錄,沒有這個目錄的話,臨時檔案無法創建,這些工具軟體就很可能會出錯,所以要刪除的話,只應該清空裡面的臨時文件垃圾,而不能把TEMP這個目錄都乾掉了;Windows里通常也有一個TEMP文件,是系統默認的臨時文件的放置地方,也不建議連目錄都刪除了,定期清空裡面的垃圾即可。

關於Linux系統清理/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/sh

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_*' 10d /tmp

#/usr/sbin/tmpwatch "$flags " 30d /var/tmp

for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do

if [ -d "$d" ]; then

/usr/sbin/tmpwatch "$flags" -f 30d "$d"

fi

done

這個腳本大家仔細分析一下就明白了,第一行相當於一個標記(參數),第二行就是針對/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資料夾的時限預設每次啟動

以上是/tmp/資料夾在Linux系統中的清理原理及tmp檔案的作用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
tmp
來源:somode.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板