убить удаленные файлы и очистить кэш памяти

Для этой команды:

IFS=$'\n' a=($str)

Существует альтернативное решение: дать первому назначению ( IFS = $ '\ n' ) команду для выполнения (функцию):

$ split(){ a=( $str ); }
$ IFS=$'\n' split

Это поместит IFS в среду для вызова split, но не будет сохранена в текущей среде.

Это также позволяет избежать всегда рискованного использования eval.

0
07.03.2019, 12:33
2 ответа

Часто процессы явно создают и открывают файлы и удаляют их напрямую, чтобы файл можно было использовать более безопасно, а также гарантировать, что файл будет удален по завершении процесса.

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

Есть случаи, когда открытые удаленные файлы могут быть ошибкой (, например. процесс записывает в файл журнала, но файл журнала сжимается и удаляется, не сигнализируя процессу о повторном открытии файла журнала ). Вы можете обрезать такие файлы через файловую систему /proc/:найти номер дескриптора файла с помощью lsof, как показано выше, а затем выполнить > /proc/12345/fd/123, чтобы обрезать файл (12345 — идентификатор процесса, 123 — дескриптор файла количество. Однако это очень редко необходимо.

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

2
28.01.2020, 02:30

В зависимости от программного обеспечения/решений, которые вы используете, вы должны определить известный/приемлемый базовый уровень.

Я бы не стал зацикливаться на удаленных файлах, которые все еще открыты или присутствуют в системе, если бы они не увеличивались со значительной скоростью с течением времени. Теперь, если у вас есть значительные отклонения от нормального базового состояния системы/ВМ, возможно, вам есть о чем беспокоиться.

Недавно мы обнаружили некоторые системы, общие для поставщика программного обеспечения, в которых у нас были отклонения от базового уровня порядка 20 -50 тыс. удаленных файлов; выполнение lsof занимало около 5 минут, и у нас заканчивался диск.

В конце концов, мы обнаружили, что поставщик, должно быть, разработал некоторые подпрограммы Java, в которых он открывал временные файлы и удалял их , не закрывая. Мы сообщили об ошибке поставщику, указав подозрительные файлы, и он исправил код. Мы также указали заказчику и поставщику, что решение может превысить лимит открытых файлов в Linux с большими разделами данных.

1
28.01.2020, 02:30

Теги

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