Инструменты пользователя

Инструменты сайта


lsof

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

lsof [2019/03/01 18:15]
lsof [2020/06/13 13:46] (текущий)
Строка 1: Строка 1:
 +====== Примеры использования утилиты lsof ======
 +
 +{{htmlmetatags>
 +metatag-description=(Утилита lsof — это невероятно полезная команда, которая выводит список всех открытых файлов.)
 +}}
 +
 +{{ ::utilita_lsof_ejo_nazvanie_zvuchit_kak_el-soff_xotja_nekotorym_bolshe_nravitsja_nechto_vrode_liss-off_ili_dazhe_el-es-o-eff_.jpg?nolink&400 |}}
 +
 +**lsof (от англ. LiSt of Open Files)** — утилита, служащая для вывода информации о том, какие файлы используются теми или иными процессами.
 +
 +**lsof** - сторонняя программа и не входит в состав утилит ОС по умолчанию. Она умеет показывать открытые сокеты, сетевые соединения и открытые файлы. Опция -i показывает открытые интернет-соединения. Без опции -i программа lsof выводит информацию об открытых файлах. Вывод её несколько удобнее, чем у программы fstat, так как включает в себя не только номера inod'ов, но и имена файлов, которые она берёт из кеша ядра.
 +  * Показать TCP или UDP соединения<file bash>
 +$ lsof -i tcp
 +$ lsof -i udp
 +</file>
 +  * Сколько файлов открыто в текущий момент в системе<code>$ lsof | wc -l
 +7673
 +</code>
 +  * Пример 2<code bash>
 +lsof -i -n
 +COMMAND    PID     USER   FD   TYPE DEVICE SIZE NODE NAME
 +sshd      2477     root    3u  IPv4   5993       TCP *:ssh (LISTEN)
 +sshd      2477     root    4u  IPv6   5996       TCP *:ssh (LISTEN)
 +nmbd      2511     root    7u  IPv4   6058       UDP *:netbios-ns 
 +nmbd      2511     root    8u  IPv4   6059       UDP *:netbios-dgm 
 +nmbd      2511     root    9u  IPv4   6061       UDP 192.168.1.15:netbios-ns 
 +nmbd      2511     root   10u  IPv4   6062       UDP 192.168.1.15:netbios-dgm 
 +smbd      2515     root   20u  IPv4   6133       TCP *:microsoft-ds (LISTEN)
 +smbd      2515     root   21u  IPv4   6135       TCP *:netbios-ssn (LISTEN)
 +avahi-dae 2801    avahi   14u  IPv4   7052       UDP *:mdns 
 +avahi-dae 2801    avahi   15u  IPv4   7053       UDP *:43981 
 +cupsd     2825     root    2u  IPv6  21549       TCP [::1]:ipp (LISTEN)
 +cupsd     2825     root    3u  IPv4  21550       TCP 127.0.0.1:ipp (LISTEN)
 +apache2   3002     root    3u  IPv4   7406       TCP *:www (LISTEN)
 +apache2   3081 www-data    3u  IPv4   7406       TCP *:www (LISTEN)
 +apache2   3082 www-data    3u  IPv4   7406       TCP *:www (LISTEN)
 +apache2   3083 www-data    3u  IPv4   7406       TCP *:www (LISTEN)
 +apache2   3084 www-data    3u  IPv4   7406       TCP *:www (LISTEN)
 +apache2   3085 www-data    3u  IPv4   7406       TCP *:www (LISTEN)
 +smbd      3841     root   24u  IPv4  13363       TCP 192.168.1.15:microsoft-ds->192.168.1.16:1981 (ESTABLISHED)
 +firefox   6170 darkfire   20u  IPv4  54924       TCP 192.168.1.15:59666->74.125.87.102:www (ESTABLISHED)
 +firefox   6170 darkfire   45u  IPv4  52609       TCP 192.168.1.15:33684->74.125.87.99:www (ESTABLISHED)
 +firefox   6170 darkfire   53u  IPv4  54928       TCP 192.168.1.15:47590->206.132.73.21:www (ESTABLISHED)
 +firefox   6170 darkfire   54u  IPv4  53605       TCP 192.168.1.15:36558->74.125.87.147:www (ESTABLISHED)
 +</code>
 +  * Опция -a объединяет несколько условий, например посмотреть все порты открытые процессом:<code bash>
 +lsof -i -a -p 1086
 +COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
 +telegram- 1086  rav   16u  IPv4 797222      0t0  TCP 192.168.43.239:59476->li-in-f105.1e100.net:https (ESTABLISHED)
 +telegram- 1086  rav   17u  IPv4 798814      0t0  TCP 192.168.43.239:39734->149.154.175.100:https (SYN_SENT)
 +telegram- 1086  rav   29u  IPv4 798815      0t0  TCP 192.168.43.239:41498->196.55.254.176:5764 (SYN_SENT)
 +telegram- 1086  rav   38u  IPv4 798807      0t0  TCP 192.168.43.239:58444->149.154.167.51:https (SYN_SENT)
 +telegram- 1086  rav   40u  IPv4 798194      0t0  TCP 192.168.43.239:56116->149.154.175.100:http (SYN_SENT)
 +telegram- 1086  rav   41u  IPv4 798808      0t0  TCP 192.168.43.239:41484->196.55.254.176:5764 (SYN_SENT)
 +telegram- 1086  rav   43u  IPv4 796163      0t0  TCP 192.168.43.239:58450->149.154.167.51:https (SYN_SENT)
 +telegram- 1086  rav   44u  IPv4 796164      0t0  TCP 192.168.43.239:41490->196.55.254.176:5764 (SYN_SENT)
 +telegram- 1086  rav   48u  IPv4 798191      0t0  TCP 192.168.43.239:43192->149.154.167.51:http (SYN_SENT)
 +telegram- 1086  rav   51u  IPv4 796167      0t0  TCP 192.168.43.239:43194->149.154.167.51:http (SYN_SENT)
 +</code>
 +  * Можно указывать порт в виде числа или же текстового алиаса из файла /etc/services. Две команды ниже идентичны и выводят одинаковую информацию.<code bash>
 +# lsof -i:5353
 +# lsof -i:mdns
 +COMMAND    PID  USER   FD   TYPE DEVICE SIZE NODE NAME
 +avahi-dae 2801 avahi   14u  IPv4   7052       UDP *:mdns
 +</code>
 +  * lsof и head (без параметров выводит 10 линий)<file bash>
 +lsof -i -n | head -n 7
 +</file>