Как отобразить самые большие файлы без блокировки в Linux? - PullRequest
0 голосов
/ 14 декабря 2018

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

du -L -ch /var/log | sort -rh  | head -n 10 &> log-size.txt

Это оказалось застрявшим в нескольких случаях, что предотвратило остановку даже при подходе timeout -s KILL 5m ....

Несколько лет назад это было вызвано остановкой монтирования NFS, но совсем недавно я получилв это на виртуальных машинах, где я вообще не использовал NFS.По-видимому, в сборках openstack есть шанс ~ 1:30.

Я прочитал, что следующие символические ссылки (-L) могут блокировать "du" в некоторых случаях, если есть циклы, но мои тесты не смогливоспроизведите проблему, даже когда я создал какой-то цикл.

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

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

1 Ответ

0 голосов
/ 14 декабря 2018

Если вас не интересуют разреженные файлы, и вы можете справиться с видимым размером (а не с размером на диске), тогда ls должно работать нормально: ls -L --sort=s|head -n10> log-size.txt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...