摘要:df -h 發(fā)現(xiàn)系統(tǒng)盤和數(shù)據(jù)盤都是沒有滿的,創(chuàng)建文件或者創(chuàng)建目錄下載文件都是無法執(zhí)行,創(chuàng)建時(shí)提示:mkdir: cannot create directory ‘xxx’: No space left on device...
一、起因:
df -h 發(fā)現(xiàn)系統(tǒng)盤和數(shù)據(jù)盤都是沒有滿的,創(chuàng)建文件或者創(chuàng)建目錄下載文件都是無法執(zhí)行,創(chuàng)建時(shí)提示:mkdir: cannot create directory ‘xxx’: No space left on device
二、分析:
既然磁盤沒有滿,那在看看inodes使用情況,運(yùn)行命令:df -i
果然是 inodes 100% 了,找到原因之后,查看到底哪個(gè)目錄下面的文件最多,查看前30個(gè)目錄最多文件即可。
find / -xdev -printf '%h\n' | sort | uniq -c | sort -nr -k 1 | head -30
發(fā)現(xiàn)是 /home/fzw目錄下的文件最多
三、解決:
find /home/fzw -mtime +21 -name "*.*" -exec rm -Rf {} \;
解釋一下這個(gè)命令:
/home/fzw :準(zhǔn)備要進(jìn)行清理的任意目錄
-mtime:標(biāo)準(zhǔn)語句寫法
+10:查找10天前的文件,這里用數(shù)字代表天數(shù),+30表示查找30天前的文件
"*.*":希望查找的數(shù)據(jù)類型,"*.jpg"表示查找擴(kuò)展名為jpg的所有文件,"*"表示查找所有文件
-exec:固定寫法
rm -rf:強(qiáng)制刪除文件,包括目錄
{} \; :固定寫法,一對(duì)大括號(hào)+空格+/+;
當(dāng)然也可以根據(jù)文件名、根據(jù)大小,根據(jù)其他不同條件過濾刪除,或者修改等,可以考慮sort等命令結(jié)合使用。
備注:
至于df -i,個(gè)人理解,最簡單的說法,inode包含的信息:文件的字節(jié)數(shù),擁有者id,組id,權(quán)限,改動(dòng)時(shí)間,鏈接數(shù),數(shù)據(jù)block的位置。相反是不表示文件大小。這就是為什么df -h和df -i 顯示的結(jié)果是不一樣的原因。
ps:在df -h 和df -i 顯示使用率100%,基本解決方法都是刪除文件。
df -h 是去刪除比較大無用的文件-----------大文件占用大量的磁盤容量。
df -i 則去刪除數(shù)量過多的小文件-----------過多的文件占用了大量的inode號(hào)。