lsof /mount/point
или для конкретного устройства:
lsof /dev/sdX1
Дополнительные полезные флаги:
lsof +f -- /mount/point # Показать флаги открытия файлов
lsof -nP +c 15 /mount/point # Отключить преобразование имен и портов
fuser -v /mount/point
или с отображением процессов:
fuser -vm /dev/sdX1
Ключевые опции:
fuser -c /mount/point # Показать использующие процессы
fuser -km /mount/point # Завершить все использующие процессы
ls -l /proc/*/cwd | grep /mount/point
или поиск по открытым файлам:
find /proc/*/fd -ls | grep /mount/point
lsof +f -- /dev/mapper/vg_name-lv_name
showmount -a nfs-server | grep client-ip
docker ps -q | xargs docker inspect --format '{{.Id}} {{.State.Pid}}' | while read -r cid pid; do
ls -l /proc/$pid/root | grep /mount/point && echo "Container $cid"
done
pstree -p $(fuser -vm /mount/point 2>&1 | awk '{print $2}' | grep -oP '\d+' | sort -u)
ps aux | grep $(fuser -vm /mount/point 2>&1 | awk '{print $2}' | grep -oP '\d+' | sort -u | tr '\n' ',')
watch -n 1 "lsof +f -- /mount/point | awk '{print \$1,\$2,\$NF}' | column -t"
while true; do
date >> /tmp/disk_usage.log
lsof /mount/point >> /tmp/disk_usage.log
sleep 5
done
lsof /mount/point | awk '$4 ``` /[0-9]+[wu]/ {print}' # Только записи
lsof /mount/point | awk '{print $1}' | sort | uniq -c | sort -nr
Резюмируем: Для определения процессов, использующих раздел, оптимально использовать комбинацию lsof
и fuser
. В сложных средах (контейнеры, виртуализация) требуются дополнительные методы анализа через /proc
. Для автоматизации мониторинга можно создать скрипты на основе этих команд.