Linux
/tmp 為 1.8Gb;刪除超過 8 天的文件只刪除了 ~300mb .. 什麼佔用了這麼多空間?
我在 CentOS 上執行一個網路伺服器。
今天我無法執行任何 SQL 查詢。經調查,
error 28
我的/tmp
目錄無法寫入。我跑了
du /tmp
,它是 1.8Gb。然後我執行find /tmp -type f -mtime +8 -exec rm -f {} \;
它釋放了 300Mb 空間。現在,這已經完成了工作——MySQL 可以再次執行。
但是,我很好奇為什麼伺服器的
/tmp
目錄中有這麼多文件。我已經重新啟動了兩次伺服器,並且目錄大小保持不變。大多數Linux發行版不會在重新啟動時清除臨時文件嗎?如果我執行
ls /tmp
,我會得到大量此類文件的列表:tempCaa7Nw tempk7uZU4 temps3GaF1 tempzzWWjV tempcAbH5o tempK7VCdu temps3hRWv tempZzXHPM tempCabZXR tempk7VwjK temps3IdYj tempzzxZWw tempcAcQtu tempk7W0SI tempS3IGMF tempzZy7FM tempCaCTkx tempk7xrzw tempS3iMfj tempzZy8L6 tempcAcur7 tempk7yX3J tempS3izd5 tempZZYKXr tempcaCwnz tempk81EIE tempS3JU5s tempzZyQLO tempcAdpAk tempk81Qpo tempS3kaNx tempzZZos7 tempCaeFae tempk81ZLV tempS3KYOx tempcaEGmt tempk83VVy tempS3LI1u
完整列表在這裡。
我需要找出導致這麼多臨時文件的原因嗎?還是我只需要增加
/tmp
目錄的大小(或其他東西?)?那是在某個配置文件中嗎?我是一個可憐的linux管理員,所以請原諒我的無知。
編輯@JeffFerland
這是輸出文件的
grep /tmp
結果lsof
。mysqld 4649 mysql 4u REG 7,0 0 103774 / tmp/ib4mpAJ8 (deleted) mysqld 4649 mysql 5u REG 7,0 0 103775 / tmp/ibvE7FxN (deleted) mysqld 4649 mysql 6u REG 7,0 0 103776 / tmp/ibPe3Lls (deleted) mysqld 4649 mysql 7u REG 7,0 0 103777 / tmp/ib656Kb7 (deleted) mysqld 4649 mysql 11u REG 7,0 0 103778 / tmp/ibpptQzP (deleted) cp 7997 root 3r REG 7,0 18897 28260 / tmp/tempF091j1 cp 7997 root 4w REG 9,1 0 297690 / tmp_bu/tmp/tempF091j1 (deleted)
附加編輯 昨天刪除了大約 300Mb 的文件後,我的
/tmp
目錄又恢復到了 1.8Gb 的原始大小,而且 MySQL 再次無法正常工作。請幫忙!
這些文件中的大多數具有相同的大小。檢查其中之一。我的第一個猜測是您的伺服器接受文件上傳並且如果您不使用上傳的文件則不會清理。
您可以嘗試的一件事是使用該
lsof
命令列出作業系統目前正在使用的所有文件。這可能會讓您了解哪些正在執行的程序正在創建/使用這些 /temp.*/ 文件。從那裡開始,假設您發現哪個程序是罪魁禍首,我將深入研究哪些配置選項可用於減少文件垃圾郵件。