Мой внешний диск установлен в /log
и я больше не могу писать в него, потому что он заполнен. Когда я проверяю с df -h
:
Filesystem Size Used Avail Use% Mounted on
udev 3.7G 12K 3.7G 1% /dev
tmpfs 748M 384K 748M 1% /run
/dev/xvda1 7.8G 7.4G 0 100% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 3.7G 0 3.7G 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/xvdb 40G 49M 38G 1% /mnt
/dev/xvdc 40G 38G 4.0K 100% /log
Но с df -i
это всего 1%:
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 956199 394 955805 1% /dev
tmpfs 957438 328 957110 1% /run
/dev/xvda1 524288 165951 358337 32% /
none 957438 2 957436 1% /sys/fs/cgroup
none 957438 1 957437 1% /run/lock
none 957438 1 957437 1% /run/shm
none 957438 2 957436 1% /run/user
/dev/xvdb 2621440 11 2621429 1% /mnt
/dev/xvdc 2621440 23593 2597847 1% /log
Использование sudo du -s /log/* |sort -n
:
4 /log/production.log
16 /log/lost+found
32 /log/redis
240024 /log/linsight
5008628 /log/mongodb
и, наконец, я не смог найти то, что занимало так много места на диске, используя ncdu /log
:
4.8GiB [##########] /mongodb
234.4MiB [ ] /linsight
32.0KiB [ ] /redis
! 16.0KiB [ ] /lost+found
4.0KiB [ ] production.log
P / s: Думаю, тут действительно что-то не так, уверен на 100%, что production.log
это ГБ, но здесь отображается только 4,0 КБ.
du -s /log/* /log/.??*|sort -n
покажет вам, что занимает больше всего места, и вы можете повторно использовать тот же подход для подкаталогов, которые вы считаете большими, чтобы детализировать свое расследование.
Когда есть использование диска, которое не учтено в списке файлов, это означает, что какая-то программа все еще выполняет запись в файл, который был удален. Единственный способ освободить это пространство - остановить программу, что можно сделать, перезагрузив компьютер, если вы не знаете, что это такое. Поскольку вы упомянули, что production.log
должен быть больше, процесс, который его сгенерировал, будет первым, который попытается перезапустить.
Обратите внимание, что df -i
покажет использование inode, которое не отражает использование дискового пространства, а количество файлов относительно ограничения файловой системы.
В Ubuntu вы можете просто сделать ls -lh
и он предоставит вам удобочитаемый результат.
Также как это ls /path/to/tmp -lh