基于Linux的系統(tǒng)中/tmp目錄包含系統(tǒng)以及服務(wù)器上運(yùn)行的其他軟件和應(yīng)用程序臨時(shí)需要的必要文件。
例如,當(dāng)您編寫文檔時(shí),該文檔中的所有內(nèi)容都保存為/ tmp目錄中的臨時(shí)文件。保存后,它會(huì)存儲(chǔ)在您的首選位置,并且在退出文檔后便會(huì)刪除臨時(shí)文件。
/tmp和/var/tmp都被程序和系統(tǒng)本身用來臨時(shí)存儲(chǔ)數(shù)據(jù)。然而,關(guān)鍵的區(qū)別在于數(shù)據(jù)在這些文件系統(tǒng)中存儲(chǔ)的時(shí)間。/var/tmp的數(shù)據(jù)保存期比/tmp目錄的數(shù)據(jù)保存期要長(zhǎng)得多。
默認(rèn)情況下,所有存儲(chǔ)在/var/tmp中的文件和數(shù)據(jù)最多可以保存30天。而在/tmp中,數(shù)據(jù)會(huì)在十天后自動(dòng)刪除。
此外,任何存儲(chǔ)在/tmp目錄下的臨時(shí)文件都會(huì)在系統(tǒng)重啟后立即被刪除。因此,/var/tmp目錄被程序用來存儲(chǔ)需要在重啟之間暫時(shí)保存的數(shù)據(jù)。
2、Linux的/tmp目錄會(huì)不會(huì)被填滿?
存儲(chǔ)在/tmp目錄下的文件和數(shù)據(jù)只有幾KB大小。盡管有可能,但/tmp目錄被填滿是值得懷疑的。
對(duì)于一個(gè)普通的系統(tǒng)來說,需要有上百萬(wàn)個(gè)臨時(shí)文件存儲(chǔ)在/tmp目錄中才能填滿它。如果你運(yùn)行的是一個(gè)經(jīng)常被關(guān)閉的單用戶系統(tǒng),這不應(yīng)該是你應(yīng)該擔(dān)心的事情,因?yàn)橹貑⑾到y(tǒng)會(huì)刪除所有存儲(chǔ)在/tmp目錄下的文件。
但是,如果你是一個(gè)系統(tǒng)管理員,運(yùn)行的服務(wù)器很少被重啟,并且托管了成千上萬(wàn)的用戶,那么/tmp目錄被填滿就是一個(gè)實(shí)際問題。
隨著更多的臨時(shí)文件堆積在目錄中,它將慢慢吞噬所有的存儲(chǔ)空間,這對(duì)整個(gè)系統(tǒng)的健康來說是一個(gè)可怕的消息。
3、如何刪除存放在/tmp目錄里面的文件?
除非你知道自己在做什么,否則不建議你到處去刪除/tmp目錄里面的文件。這些文件很重要,是你系統(tǒng)上運(yùn)行的軟件所需要的。刪除它們有可能導(dǎo)致系統(tǒng)崩潰。由于/tmp目錄中存儲(chǔ)的文件和數(shù)據(jù)會(huì)在系統(tǒng)重啟后自動(dòng)刪除,所以你不需要主動(dòng)擔(dān)心。
然而,正如前面所討論的那樣,對(duì)于連續(xù)運(yùn)行數(shù)月的服務(wù)器來說,有必要在它淹沒/tmp目錄之前不時(shí)地清理臨時(shí)文件。為此,我們鼓勵(lì)你采取更系統(tǒng)的方法,而不是一下刪除所有的/tmp文件。
在這里,我們整理了一份關(guān)于如何正確管理Linux /tmp目錄的詳細(xì)解讀,以幫助系統(tǒng)管理員。
4、刪除臨時(shí)文件和管理Linux /tmp目錄的正確方法
在嘗試管理Linux /tmp目錄時(shí),你需要考慮兩件事。首先,你需要知道如何確定要從/tmp目錄中刪除哪些文件,因?yàn)殡S意刪除文件會(huì)干擾用戶的活動(dòng)。
其次,你需要有一種方法來自動(dòng)完成/tmp目錄的清理過程,因?yàn)橐謩?dòng)搜索和常規(guī)刪除臨時(shí)文件是不可能的。
考慮到這兩點(diǎn),最完美的解決方案就是定期使用crontab部署用戶文件管家腳本。例如,假設(shè)你想例行地刪除所有存儲(chǔ)在/tmp目錄下的、最近三天沒有使用過的用戶文件。
那么,你可以通過首先通知服務(wù)器上的用戶關(guān)于你的新的臨時(shí)文件刪除策略來實(shí)現(xiàn)這一目標(biāo),這樣他們就可以相應(yīng)地修改他們的使用活動(dòng)。接下來,你需要寫一個(gè)腳本,幫助你找到所有這些文件。
這是您可以嘗試的示例:
find /tmp -type f ( ! -user root ) -atime +3
上面的腳本將查找最近三天未訪問的所有/ tmp文件,但將排除root用戶擁有的所有文件。要?jiǎng)h除所有這些文件,您只需要對(duì)上述腳本進(jìn)行一點(diǎn)編輯即可:
find /tmp -type f ( ! -user root ) -atime +3 -delete
要定期運(yùn)行此腳本,您需要將以上文本復(fù)制到文件中并使其可執(zhí)行。對(duì)于本教程,我們將創(chuàng)建文件tmp.cleanup.sh。
接下來,我們將設(shè)置一個(gè)crontab命令,該命令每6小時(shí)執(zhí)行一次腳本。為此,首先在終端中輸入以下命令:
$ crontab -e
這將在編輯器中打開crontab文件。接下來,您需要將給定命令復(fù)制并粘貼到編輯器中,然后保存并退出。
0**/6** /opt/scripts/tmp.cleanup.sh
這將每6小時(shí)在/opt/scripts/tmp.cleanup.sh中運(yùn)行一次腳本,因此您不必?fù)?dān)心/tmp目錄被淹沒并耗盡系統(tǒng)存儲(chǔ)空間。
當(dāng)然,您可以隨意對(duì)crontab進(jìn)行編程,以在所需的任何定期間隔內(nèi)執(zhí)行腳本。這是有關(guān)如何創(chuàng)建crontab命令以幫助您的深入指南。
5、我不小心刪除了/tmp目錄,怎么辦?
在手動(dòng)刪除/ tmp文件的過程中,某些用戶意外地最終刪除了/ tmp目錄本身。這樣的混亂可以而且確實(shí)會(huì)發(fā)生。但是,您可以使用上述方法快速恢復(fù)已刪除的/ tmp目錄。
您需要做的就是在終端中輸入以下命令:
$ sudo mkdir /tmp
$ sudo chmod 1777 /tmp
第一行創(chuàng)建一個(gè)新的/tmp目錄。第二行給予所有用戶(所有者,組和其他)訪問和許可,以讀取,寫入和運(yùn)行/tmp目錄中的文件。
接下來,您可以輸入此命令來檢查/tmp目錄的所有權(quán)限,以確保所有用戶都可以使用它。
$ ls -ld/tmp
檢查一切正常后,您將需要重新啟動(dòng)系統(tǒng)。這將確保程序使用新創(chuàng)建的/tmp目錄啟動(dòng)。
以上這些您需要了解的有關(guān)Linux / tmp目錄的所有信息。