Как узнать, какими процессами используется раздел?devops-95

Основные методы анализа

1. Использование lsof

lsof /mount/point

или для конкретного устройства:

lsof /dev/sdX1

Дополнительные полезные флаги:

lsof +f -- /mount/point  # Показать флаги открытия файлов
lsof -nP +c 15 /mount/point  # Отключить преобразование имен и портов

2. Команда fuser

fuser -v /mount/point

или с отображением процессов:

fuser -vm /dev/sdX1

Ключевые опции:

fuser -c /mount/point  # Показать использующие процессы
fuser -km /mount/point  # Завершить все использующие процессы

3. Анализ через /proc

ls -l /proc/*/cwd | grep /mount/point

или поиск по открытым файлам:

find /proc/*/fd -ls | grep /mount/point

Специальные случаи

1. Для LVM-томов

lsof +f -- /dev/mapper/vg_name-lv_name

2. Для сетевых файловых систем

showmount -a nfs-server | grep client-ip

3. Для Docker-контейнеров

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

Визуализация зависимостей

1. Дерево процессов с pstree

pstree -p $(fuser -vm /mount/point 2>&1 | awk '{print $2}' | grep -oP '\d+' | sort -u)

2. Графическое представление

ps aux | grep $(fuser -vm /mount/point 2>&1 | awk '{print $2}' | grep -oP '\d+' | sort -u | tr '\n' ',')

Автоматизированный мониторинг

1. Скрипт для постоянного отслеживания

watch -n 1 "lsof +f -- /mount/point | awk '{print \$1,\$2,\$NF}' | column -t"

2. Логирование активности

while true; do
  date >> /tmp/disk_usage.log
  lsof /mount/point >> /tmp/disk_usage.log
  sleep 5
done

Обработка результатов

1. Фильтрация по типу доступа

lsof /mount/point | awk '$4 ``` /[0-9]+[wu]/ {print}'  # Только записи

2. Статистика по процессам

lsof /mount/point | awk '{print $1}' | sort | uniq -c | sort -nr

Резюмируем: Для определения процессов, использующих раздел, оптимально использовать комбинацию lsof и fuser. В сложных средах (контейнеры, виртуализация) требуются дополнительные методы анализа через /proc. Для автоматизации мониторинга можно создать скрипты на основе этих команд.