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