linux一次inodes滿了
df -i
裡面的inode 100%了
然後用
find 目錄名 |wc -l
來挨個目錄的找
終於找到了在tmp目錄下面,佔用了大量的inodes
但是這個/tmp目錄不能隨便刪呀,不然後tmp目錄許可權不對,登入不了系統(正確的許可權為chmod 1777 /tmp)
所以只能用
==========下面是解決方法============================================
刪除sess_字元的檔案
rm -f *sess_* //這個命令執行不成功,會提示Argument list too long
Argument list too long時的解決辦法
例:
1、rm * -rf 改為:
find . -name "*" | xargs rm -rf '*' 就行了。
2、rm test* -rf 改為:
find . -name "test*" | xargs rm -rf "test*"
1.可以使用萬用字元,比如顯示當前資料夾下所有的 firefox的檔案 ls -d firefox* 就可以了。不加-d 會把資料夾裡的檔案也顯示出來。
2.這個命令的意思是:輸出所有的檔名(用空格分割) xargs就是將ls的輸出,每10個為一組(以空格為分隔符),作為rm -rf的引數也就是說將所有檔名10個為一組,由rm -rf刪除,這樣就不會超過命令列的長度了.
ls | xargs -n 10 rm -fr
上面兩條指令組合起來就是
ls -d /tmp/sess_* | xargs -n 10 rm -fr
遍歷尋找0位元組的檔案,並刪除
find /tmp -type f -size 0 -exec rm {} \;
=============上面是解決方法==================================================
自己寫了個crontab每天早晨3點刪
crontab -u //設定某個使用者的cron服務,一般root使用者在執行這個命令的時候需要此引數
crontab -l //列出某個使用者cron服務的詳細內容
crontab -r //刪除沒個使用者的cron服務
crontab -e //編輯某個使用者的cron服務
* * * * * 這5個星,代表時間
分鐘 (0-59)
小時(0-23)
日期(1-31)
月份(1-12)
星期(0-6) //0代表星期天
0 3 * * * ls -d /tmp/sess_* | xargs -n 10 rm -fr
後期得用
tmpwatch工具
放在crontab裡定期清理
通過inode節點找到檔案刪除
ls -i
find -inum XXX |xargs -I {} rm {}
發現 sess_ 這個檔案出現的非常非常多
在php.ini中的session.save_path = "/tmp"
改一下