- 論壇徽章:
- 6
|
本帖最后由 1cpuer 于 2016-07-25 10:33 編輯
E:\sed\1huiche>sed ":a;/]/!N;s/\n//;ta" 1huiche1
sed: couldn't write 102 items to stdout: No space left on device
是windows版的;和linux版解法不同
E:\sed\1huiche>sed ":a;/]/!N;s/\n//;ta" > 1huiche2
重定項到文件1huiche2顯示正常
可能1huiche1 :No space left on device
windows ms-dos : cmd commands
E:\sed\1huiche>dir e:\sed\1huiche\1huiche1
驅(qū)動器 E 中的卷是 新加卷
卷的序列號是 266E-A991
e:\sed\1huiche 的目錄
2016/07/25 10:02 495 1huiche1
1 個文件 495 字節(jié)
0 個目錄 32,303,169,536 可用字節(jié)
E:\sed\1huiche>
是先建文件容量MB限制嗎?
linux版解法
#df
/dev/sdc1 20799540 19751436 0 100% /home/sluo
無論怎么刪除文件,剩余空間都為0,并沒有增加。
網(wǎng)上很多人遇到的是硬盤還有空間,但是也報錯:No space left on device. 顯然他們的問題是因為inode耗盡了。
Linux上創(chuàng)建文件需要對應(yīng)的inode如果inode 耗盡也無法寫入文件,inode可以通過df -i查看。通常由于<2K的小文件過多,而每個小文件又占用一個inode,這樣就會出現(xiàn)硬盤空間還有,卻無法繼續(xù)寫入。
我遇到的問題恰好相反。正常情況下,這是正確的,硬盤沒空間了,但inode還有剩余。不過我的問題是,刪除文件,磁盤空間沒有增加。
以前,我也遇到過這個問題,不知道怎么就解決的。今天沒這么好運(yùn)氣,所以只能試著去找到真正的原因。
其實,答案很簡單:在Linux中,如果一個進(jìn)程打開文件讀寫,只要這個進(jìn)程不退出,即便刪掉了這個文件,文件也不會真正被刪除。
我就是通過lsof -s 看到我之前那個程序?qū)懙奈募在(雖然有注解(deleted)),所以通過,ps -aux|grep mage找到了那個進(jìn)程將其kill了。這時,硬盤的空間才一點(diǎn)一點(diǎn)增加,說明進(jìn)程退出,正釋放硬盤空間。
多虧了這個貼,關(guān)鍵是第一個greeblesnort的回復(fù)
|
|