【Linux shell】inode滿,快速清空目錄


動機


某個負責的網站,開發人員突然說後台有問題。寫檔怎麼樣都寫不進去
No space left on device

解題過程


簡單的使用指令
df -h 看
發現空間使用並沒有滿
[root@host ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda3              28G  8.6G   18G  34% /
tmpfs                 2.0G   72K  2.0G   1% /dev/shm
/dev/vda1             248M   31M  205M  14% /boot
難道是我眼睛業障重?...
看看inode好了,於是我下了df -i
[root@host ~]# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/vda3            1818624 1818624       0  100% /
tmpfs                 183233      15  183218    1% /dev/shm
/dev/vda1              65536      40   65496    1% /boot
抓到了,你這小壞壞。
但是到底是誰吃掉的呢...這時候突然想到 /var/spool/clientmqueue/ 這個鬼東西
好的切過去看看
[root@host ~]# cd /var/spool/clientmqueue
[root@host clientmqueue]# ls -al

卡住

看來不用想了,就是他了

解決方案


1.
# rm -rf ./*
2.
# find /var/spool/clientmqueue/ -type f -exec rm {} \;
3.
# rsync 空目錄

原本使用方案 1 ,結果檔案太多了。他會跟你說超出範圍 XDDDDD
所以只好使用方案 2 了。
# find /var/spool/clientmqueue/ -type f -exec rm {} \;
結果發現.....慢到爆炸阿阿阿阿
等到砍完我都老了吧!

不得已,只好使用方案 3 了

# mkdir /empty
# rsync --delete-before -d /empty/ /var/spool/clientmqueue/
# rmdir /empty
結束!不到一分鐘就砍完了!
來看看成果吧!
[root@host ~]# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/vda3            1818624  371312 1447312   21% /
tmpfs                 183233      15  183218    1% /dev/shm
/dev/vda1              65536      40   65496    1% /boot
原來 rsync 這麼好用。(笑

留言