Linux 中的 /tmp 目錄是做什么用的?其與 /var/tmp 有什么區(qū)別?
如果你使用過 Linux 系統(tǒng),那么你一定知道 /tmp 目錄,不過...如果你用的不多,可能就只是知道這個目錄而已,不一定有機會深入了解它。
除此以外,還有一個 /var/tmp 目錄,這看起來差不多。今天我們就來了解一下關(guān)于 /tmp 目錄的相關(guān)內(nèi)容,·以及它與 /var/tmp 目錄的區(qū)別。
/tmp 目錄是做什么用的?
tmp 是英文單詞 temporary(臨時)的簡寫,顧名思義,它用于存儲臨時文件,比如系統(tǒng)和應(yīng)用程序所使用你的臨時(短時間內(nèi)所需要)的數(shù)據(jù)。大多數(shù)Linux 發(fā)行版都會預(yù)先配置為在每次系統(tǒng)重啟后都清空 tmp 目錄。
比如,我們在系統(tǒng)中安裝軟件的時候,安裝程序會在 /tmp 目錄中存放一些需要用到的臨時文件。
再比如,在處理某些項目的時候,系統(tǒng)可能會將更改的文件臨時存儲在 /tmp 目錄中,或者文件自動保存的版本也會存儲在 /tmp 目錄中。
總體來說,/tmp 目錄用于存儲一些臨時文件,當(dāng)這些文件不再需要的時候,就可以將其刪除。
/tmp 與 /var/tmp 目錄是一樣的嗎?
答案是否定的。/tmp 目錄和 /var/tmp 目錄有著顯著的差異。盡管他們都是用于處理臨時文件,但處理方式卻是不同的。
總體來說,/tmp 目錄用于存儲短期臨時文件,而 /var/tmp 目錄用于存儲長期臨時文件。
具體來說:
持久性(Endurance):通常,存儲在 /tmp 目錄中的文件會在系統(tǒng)啟動時刪除,而 /var/tmp 中的文件不會被刪除;
用戶權(quán)限和系統(tǒng)范圍(For user VS Systemwide):通常來講,每個用戶都可以訪問 /tmp 目錄中的文件,而 /var/tmp 中的文件大多是針對于特定用戶的;
用法(Usage):這個是最關(guān)鍵的區(qū)別。/tmp 目錄用于存儲短時間內(nèi)所需的文件,如安裝軟件包;而 /var/tmp 目錄用于較長時間所需的文件,如系統(tǒng)備份或日志文件。
自動清理 tmp 目錄
前文中我們提到過,對于大多數(shù) Linux 發(fā)行版而言,當(dāng)系統(tǒng)重啟的時候會自動清理 /tmp 目錄。
那既然這樣的話,我們?yōu)槭裁催€需要主動清理 /tmp 目錄呢?因為你不會像使用 Windows 系統(tǒng)那樣每天都會關(guān)機或者重啟系統(tǒng),有些 Linux 用戶會持續(xù)數(shù)周、數(shù)月甚至數(shù)年都不會重啟系統(tǒng)。
當(dāng)然,并不是所有人都需要清理 /tmp 目錄,只有當(dāng)你的服務(wù)器磁盤空間不足的時候,才需要主動清理 /tmp 目錄。
要自動清理 /tmp 目錄,最關(guān)鍵的是需要首先明確要刪除的內(nèi)容,最好的辦法是刪除過去三天內(nèi)未使用且不屬于root用戶的文件。
基于這個原則,我們可以使用如下命令:
sudo find /tmp -type f \( ! -user root \) -atime +3 -delete
但是上述命令還不能實現(xiàn)自動化。因此,我們需要創(chuàng)建一個 corn 作業(yè)來實現(xiàn)自動化。
sudo crontab -e
如果你第一次使用任務(wù)表(corn table),系統(tǒng)可能會讓你選擇文本編輯器。大家可根據(jù)各自習(xí)慣選擇,比如 vim 或者 nano。
將如下內(nèi)容粘貼在文件末尾:
0 0 * * * sudo find /tmp -type f ! -user root -atime +3 -delete
保存更改即可。