du -xshc が 35 GB の使用量だけを報告するのに、100 GB のディスクがいっぱいであると表示されるのはなぜですか。 [コピー]

du -xshc が 35 GB の使用量だけを報告するのに、100 GB のディスクがいっぱいであると表示されるのはなぜですか。 [コピー]

私のサーバーのSSDディスクがいっぱいですが、du表示されません。

df -h|head
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda2       98G   93G     0 100% /

しかし:

du -xhcs --apparent-size /                                                                                              
35G     /                                                                                                                                                                                                                             
35G     total

私も確認してみましたが、ncdu -x /35GBしかありませんでした。

どのようにさらにデバッグできますか?

答え1

これは削除されたがまだ開いている大容量ファイルのようです。

#lsof|grep deleted|grep nginx/error.log
COMMAND       PID     TID TASKCMD               USER   FD      TYPE             DEVICE    SIZE/OFF       NODE NAME
2x
nginx     1896696                               root    5w      REG              202,2 62868951040    1344848 /var/log/nginx/error.log~ (deleted)
16x
nginx     1896697                           www-data    2w      REG              202,2 62868951040    1344848 /var/log/nginx/error.log~ (deleted)

削除されたファイルを解放するには、この場合はファイルを開くことができるプロセスを再起動してください。

service restart nginx

tail -fまたは、ターミナルセッション(tmuxなど)のファイルにまだ開いているプロセスがあることを確認してください。

循環機器も確認してください

losetup -a

関連情報