выполненный lsof в неинтерактивном режиме

Если список файлов слишком велик, чтобы его можно было передать в один вызов du -c, то в системе GNU можно сделать:

find . -iname '*.jpg' -type f -printf '%b\t%D:%i\n' |
  sort -u | cut -f1 | paste -sd+ - | bc

(размер, выраженный в количестве блоков по 512 байт). Как и du, он пытается считать жесткие ссылки только один раз. Если вас не волнуют жесткие ссылки, вы можете упростить это до:

(printf 0; find . -iname '*.jpg' -type f -printf +%b) | bc

Если вы хотите, чтобы размер вместо диска использовался, замените %b на %s. Затем размер будет выражен в байтах

.
1
18.11.2018, 16:40
1 ответ

Длительный процесс lsof обычно означает, что разрешение DNS истекло или работает некорректно, что задерживает его вывод.
Вы можете отключить разрешение DNS, добавив параметр -n .

Конечно, вы можете проверить, почему разрешение DNS на вашем сервере занимает слишком много времени.

3
27.01.2020, 23:28

Теги

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