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