TGViewer
NetworkAdmin.ru NetworkAdmin.ru @networkadminru · 4.7K subscribers
Post #881 1.18K
❗️ lsof: кто держит файл, порт или точку монтирования

Иногда нужно ответить на очень простой вопрос: кто это держит? Файл удалили, а место не освободилось. Порт занят, но непонятно кем. Диск не размонтируется, потому что "device is busy". Во всех этих случаях помогает lsof - утилита, которая показывает открытые файлы. В linux почти все является файлом: обычные файлы, сокеты, сетевые соединения, устройства, точки монтирования. Поэтому lsof умеет находить очень много полезного.

▪️ Установка:


apt install lsof

#или
yum install lsof```

▪️ Кто держит конкретный файл


lsof /var/log/app.log


Так можно увидеть процесс, PID и пользователя, который открыл файл. Особенно полезно, когда файл уже удалили, но место на диске не вернулось:


lsof | grep deleted


или аккуратнее:


lsof +L1


Это покажет открытые файлы, у которых уже нет ссылок в файловой системе.
Типичный виновник - сервис, который продолжает писать в старый лог после удаления или неудачной ротации.

▪️ Кто слушает порт. Например, нужно понять, кто занял 8080:


lsof -i :8080


Для TCP:


lsof -iTCP:8080 -sTCP:LISTEN


В выводе будет видно имя процесса, PID и пользователь. Это удобно, когда сервис не стартует с ошибкой вроде: address already in use

▪️ Кто держит точку монтирования. Допустим, не получается размонтировать диск:


umount /mnt/backup


А в ответ: target is busy

Смотрим, кто держит файлы внутри:


lsof +D /mnt/backup


После этого можно понять, какой процесс мешает размонтированию: shell с текущей директорией внутри mount point, backup-скрипт, rsync, база или зависший процесс.

▪️ Кто держит сетевые соединения. Показать все сетевые соединения:


lsof -i


Только TCP:


lsof -iTCP


Только UDP:


lsof -iUDP


Это не всегда замена ss, но часто удобно, когда нужно быстро связать соединение с процессом.

▪️ Что полезно запомнить:


lsof /path/to/file
lsof -i :PORT
lsof -iTCP:PORT -sTCP:LISTEN
lsof +D /mount/path
lsof +L1


#linux #lsof

🧑‍💻 NetworkAdmin
  • ❤ 7
  • 👍 4
More from @networkadminru
  1. Sep 29, 2026🥱 Как быстро разобраться с дисками и маунтами Когда на сервере несколько дисков, LVM, отд…
  2. Sep 28, 2026🔎 TCP keepalive: как находить мертвые соединения до того, как они создадут проблему Иногд…
  3. Sep 25, 2026🤩 Как расшифровать код ошибки Windows через certutil При установке обновлений Windows ран…
  4. Sep 23, 2026💻 Как жестко перезагрузить linux, когда обычный reboot уже не помогает Иногда сервер зави…
  5. Sep 22, 2026🌚 watch: простая динамическая диагностика в терминале Иногда не нужен отдельный мониторин…
  6. Sep 21, 2026👌 Firewall default deny: как внедрять без внезапного отрезания доступа Идея простая: разр…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →