lsof керівництво виживання [закрито]


104

lsof - це надзвичайно потужна утиліта командного рядка для систем Unix. У ньому перераховані відкриті файли, відображається інформація про них. А оскільки більшість всього є файлом у системах Unix, lsof може дати сисадмінам тону корисних діагностичних даних.

Які є найпоширеніші та корисні способи використання lsof та які комутаційні командні лінії використовуються для цього?

Відповіді:


119

Щоб показати всі мережі, пов'язані з певним port:

lsof -iTCP -i :port
lsof -i :22

Щоб показати з'єднання з певним хостом, використовуйте @host

lsof -i@192.168.1.5

Показати з'єднання на основі хоста та порту за допомогою @host:port lsof -i@192.168.1.5: 22

grepping для LISTENпоказує, які порти ваша система очікує на підключення:

lsof -i| grep LISTEN

Покажіть, що відкрив даний користувач, використовуючи -u:

lsof -u daniel

Подивіться, які файли та мережеві з'єднання використовує команда -c

lsof -c syslog-ng

-pПеремикач дозволяє побачити , що даний процес ID має відкритим, який хороший для отримання додаткової інформації про невідомих процесах:

lsof -p 10075

В -tопції повертає тількиPID

lsof -t -c Mail

Використовуючи параметри -tта -cразом, ви можете HUPобробляти

kill -HUP $(lsof -t -c sshd)

Ви також можете використовувати -tз , -uщоб вбити все у користувача відкрито

kill -9 $(lsof -t -u daniel)


Один хороший спосіб - використовувати дорогоцінний камінь, якщо ви використовуєте Ruby. Це просто зручне, кероване спільнотою CLI, щоб обробляти листи багатьох утиліт (незалежно від мови). Дайте йому спробувати .
Кедар Массваде

25
lsof -i :port 

підкаже, які програми слухають на певному порту.


1
Це не обмежується "прослуховуванням", тому якщо ви вкажете lsof -i :8080і у вас є маса процесів підключення до проксі на порту 8080, ви отримаєте і їх.
Метт Бірн

14
lsof +D /some/directory

Рекурсивно відображатимуться всі файли, відкриті в каталозі. + d лише для верхнього рівня.

Це корисно, коли у вас є високий% очікування на IO, співвіднесений для використання на певній FS і хочете побачити, які процеси розжовують ваш io.


13

lsof -iнадасть список відкритих мережевих розеток. Цей -nпараметр запобігає пошуку DNS, що корисно, коли ваше мережеве з'єднання повільне або ненадійне.


5
lsof -iпокаже лише розетки, до яких у вас є доступ у вашому просторі імен (і які розглядаються як "Інтернет" сокети через самоаналіз, а не будь-який тип мережевого сокета). Інакше ручки типу 'sock' не відображатимуться у списку.
Нік Бастін

13

Подивіться, які файли працює відкрита програма чи демон:

lsof -p pid

Де pid - ідентифікатор процесу програми чи демон.


10
lsof +f -- /mountpoint

перераховує процеси, використовуючи файли на кріпленні, встановленому на / mountpoint. Особливо корисно для того, щоб знайти, які процеси використовуються вмонтований USB-накопичувач або CD / DVD.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.