Как устранить неполадки: диск заполнен

Я думаю, вам нужны только каталоги, соответствующие определенному шаблону, поэтому вам нужна опция-P , т.е.

tree -P "*.a"

Приведенное выше вернет все каталоги, содержащие файлы с расширением .a . Справочная страница дерева может помочь вам в дальнейшем. Например, чтобы игнорировать шаблон, вы можете использовать опцию-I .

2
22.08.2019, 19:04
2 ответа

Одна из причин, по которой диски могут заполняться без демонстрации того, что duможет видеть, связана с личными файлами. Процесс может открыть файл для записи, начать запись, а затем удалить файл из своего каталога. Это оставляет открытый файл, в который процесс все еще может записывать, который по-прежнему занимает место на диске, но его невозможно обнаружить при просмотре файловой системы. Звучит глупо, но это может быть очень полезно для выделения временного хранилища для конфиденциальной информации, которую вы не хотите раскрывать другим процессам.

Другие программы также могут удалять такие файлы, и программа, которая имеет файл, открытый для записи, ничем не лучше. Иногда пользователи пытаются освободить место, удаляя файлы журнала (или другие файлы ), которые обрабатывает владелец (, например.syslogd) все еще открыты. В результате файлы продолжают занимать место и даже разрастаться, но их становится труднее найти.

Чтобы найти такие файлы, вам нужно просмотреть список открытых файлов ядра. lsofявляется предпочтительным инструментом для этого. Он показывает все открытые файлы и смещение в файле, из которого ядро ​​в данный момент читает или записывает.

Вот команда, которая может помочь:

lsof -o /dev/sdc | grep deleted

Давайте разберемся, что это делает:

  • lsofсписок открытых файлов
  • -oозначает всегда показывать смещения файлов
  • /dev/sdcограничивает результаты файлами, которые находятся на блочном устройстве /dev/sdc

Когда файл удален, lsofбудет отображать (deleted)в конце строки после места, где раньше существовал файл. grep deletedнаходит тех.

Некоторые из этих файлов могут быть нормальными. Однако 7-й столбец вывода показывает смещение; он имеет префикс 0t. Если вы видите смещение с большим числом, которое также удалено, оно занимает кучу места на диске, которое вы не видите.

Чтобы освободить это пространство, вы должны завершить процесс. (В зависимости от процесса может потребоваться его перезапуск. )Вскоре после этого вы увидите, что место на диске увеличилось.

0
27.01.2020, 22:02

Первое, что я сделал бы, это попытался бы определить, что заполнило диск. В соответствии с вашими монтированиями я бы начал проверять /home, /usr или /var (/var хранит журналы, возможно, процесс генерирует слишком много сообщений об ошибках в ваших журналах )использования диска, как только вы найдете каталог, который занял ваш пространство спуститься и найти подкаталоги.

Как только вы это сделаете, вы увидите, была ли это ваша проблема (вы загрузили слишком много видео и заполнили весь диск )или это процесс, который вы запускаете, создавая такие вещи, как журналы, файлы данных и т. д...

Если проблема была не в вас, а в процессе, вам придется идентифицировать ее с помощью информации, которую вы собрали на предыдущем этапе, и теперь вы сможете решить свою проблему.

РЕДАКТИРОВАТЬ :Просматривая мой ответ, я вижу, что пропустил важный момент: если у вас есть файлы, созданные в каталоге, который является точкой монтирования, а затем вы монтируете что-то в этот каталог, вы не сможете увидеть эти файлы, если вы не отключите свое устройство от этот каталог. У вас могут быть файлы, о которых вы не знаете, поэтому вам может потребоваться размонтировать устройства и посмотреть, есть ли в каталоге файлы.

2
27.01.2020, 22:02

Теги

Похожие вопросы