lsof je nástroj příkazového řádku pro všechny operační systémy Unix a Linux, který kontroluje „seznam otevřených souborů Název „lsof“ je sám odvozen od této funkce. Příkaz lsof se používá hlavně k načtení informací o souborech, které jsou otevřeny různými procesy. Otevřené soubory v systému mohou být různého typu, jako jsou soubory na disku, síťové zásuvky, pojmenované kanály a zařízení. Tato charakteristická funkce umožňuje ladit a lépe porozumět operačnímu systému Linux.
Když provedeme minimální instalaci CentOS / RHEL / Ubuntu / OpenSUSE , lsof není součástí výchozí instalace, takže k instalaci příkazu nebo nástroje lsof použijte následující příkaz
Pro systém CentOS / RHEL
~] # yum nainstalovat lsof -y
Systémy založené na Debianu (Ubuntu / Linux Mint)
~] # apt install lsof -y
Pro systém OpenSUSE
~] # instalace lsof pomocí zypper
Příkaz „lsof“ je vybaven mnoha možnostmi a přepínači. Bude velmi zajímavé prozkoumat některé z těchto důležitých. V tomto článku probereme 18 užitečných příkladů příkazů lsof pro linuxové geeky.
Příklad:1) Seznam všech otevřených souborů vašeho systému (lsof)
Spuštění příkazu lsof bez jakýchkoli voleb zobrazí seznam všech otevřených souborů vašeho systému, které patří všem aktivním procesům.
Pouhým zadáním příkazu „lsof“ bez jakýchkoli voleb na příkazovém řádku získáte následující výstup,
Poznámka :- Protože výstup lsof poskytuje mnoho informací STDOUT, bude lepší použít roura „|“ operaci zobrazíte tento výstup stránku po stránce.
[[e-mail chráněn] ~]# lsof | MoreCommand PID TID Uživatel FD Typ Velikost zařízení/OFF NADEMYSYD 1 kořen CWD dir 253,0 4096 128/Systemd 1 Root RTD dir 253,0 4096 128/Systemd 1 kořenový txt reg 253,0 1489960 50674818/lib/systemd/ SystemdSystemd 1 Root Mem Reg 253,0 20032 33628284 /usr/lib64/libuuid.so.1.3.0systemd 1 root mem reg 253,0 252704 33745961 /usr/lib64/libblkid.so.1.1.0
Pokud pozorně prozkoumáte, výše uvedený výstup příkazu poskytuje mnoho informací s mnoha parametry. Například zpracujte „systemd ” (což je proces démona) má ID procesu (PID ) z „1“, uživatel je „root “, deskriptor souboru (FD ) jako „cwd “ a atd. FD přichází s mnoha hodnotami, protože je známo, že deskriptor souboru je generován pro všechny otevřené soubory automaticky v systémech Linux. Níže jsou uvedeny některé ze známých hodnot „FD“ používaných pro příkazy lsof,
Poznámka :V některých případech za „mem“ následuje číslo a různé znaky jako „r“, „u“, „w“ atd. Tyto znaky jsou „r“ pro čtení, „w“ pro zápis, „u“ pro čtení a pište.
Nakonec „TYPE ” ve výstupu příkazu označuje typ souboru. Níže jsou uvedeny standardní typy souborů v systémech Linux.
Další pole, která jsou zobrazena spolu s tímto, jsou následující,
- ZAŘÍZENÍ –> ID zařízení
- VELIKOST/VYPNUTO –> Skutečná velikost tohoto procesu (pořízená během běhu)
- NODE –> Typicky číslo inodu adresáře nebo nadřazeného adresáře
- NAME –> Cesta nebo odkaz
Příklad:2) Seznam otevřených souborů určitého systému souborů (/proc)
Jak víte, „/proc ” bude existovat pouze po dobu životnosti operačního systému Linux, tento adresář obsahuje mnoho důležitých informací souvisejících s procesem. Spuštění „lsof“ na /proc nám poskytne zajímavý výstup k prozkoumání,
Jak již bylo zmíněno dříve, zde je zachyceno „lsof“ nebo „lsof“ a jsou zobrazeny všechny podrobnosti. Kromě „lsof“ existují další procesy jako systemd a rsyslogd, což jsou démoni používané pro účely swap, připojení atd.
Podobně můžeme vypsat otevřené soubory jiného souborového systému jako /var/log,
[[email protected] ~]# lsof /var/log/
Příkaz lsof je velmi užitečný v situaci, kdy příkaz df a du ukazuje různé využití disku stejného souborového systému, pomocí příkazu lsof můžeme najít soubory, které byly odstraněny, když byly otevřeny a použity nějakým procesem,
[[e-mail chráněný] ~]# lsof /var/log | grep -i "smazáno"
Výše uvedený příkaz vám dá pid souborů, které byly odstraněny, ale stále existují v systému ve stavu smazaných. Takže, abychom uvolnili prostor ze souborového systému, můžeme proces bezpečně zabít jeho pid.
Příklad:3) Seznam otevřených souborů pro příkaz „lsof“
„lsof“ sám o sobě vyvolá chybovou zprávu,
[[email protected] ~]# lsof lsoflsof:stavová chyba na lsof:Žádný takový soubor nebo adresář 4.87
Příklad:4) Seznam otevřených souborů pro uživatele (lsof -u )
„lsof“ lze použít pro všechny uživatele, kteří se přihlásili do systému Linux. V tomto případě „lsof“ zobrazí všechny otevřené soubory příslušného uživatele.
Seznam všech otevřených souborů pro uživatele root
[[e-mail chráněný] ~]# kořenový adresář lsof -u | MoreCommand PID Uživatel FD Typ Velikost zařízení/OFF NADE NAMESystemd 1 Root CWD dir 253,0 4096 128/Systemd 1 Root RTD dir 253,0 4096 128/Systemd 1 Root TXT REG 253,0 1620416 51034677/Usr/Systemd/SystemdSystemD 1 root mem reg 253,0 20032 33628284 /usr/lib64/libuuid.so.1.3.0systemd 1 root mem reg 253,0 252704 33745961 /usr/lib64/libblkid.so.1.1.0systemd 1 root reg 253,0 90632 33628275 /usr/lib64/libz.so.1.2.7Systemd 1 Root Mem Reg 253,0 153192 33618596 /usr/lib64/liblzma.so.5.0.99Systemd 1 Root Reg 253,0 19888 33656455/usr/libttr. tak.1.1.0………………………………………………………………
Seznam otevřených souborů pro uživatele bez oprávnění root, podívejme se na všechny otevřené soubory pro uživatele linuxtechi,
[[e-mail chráněný] ~]# lsof -u linuxtechi | moreNebo[[e-mail chráněný] ~]# lsof -l -u linuxtechi | více
Příkaz PID Uživatel FD typu Velikost zařízení /OFF NODE NAMESSHD 2657 Linuxtech CWD DIR 253,0 4096 128 /SSHD 2657 Linuxtech Rtd DIR 253,0 4096 128 /SSHD 2657 Linuxetech txt Reg 253,0 815520 34698340 /SSR /SBIN / SSHDSSHD 2657 Linuxtech del reg 0,4 23850/dev/Zerosshd 2657 Linuxtech mem reg 253,0 15472 33831639 /usr/lib64/security/pam_lastlog.Sosshd 2657 linUxTechi mem 253,0 68192 33628305 /sr.z -rogbr.zr.zr.zí. 1.0.6sshd 2657 linuxtechi mem REG 253,0 153.192 33618596 /usr/lib64/liblzma.so.5.0.99sshd 2657 linuxtechi mem REG 253,0 91496 33628319 /usr/lib64/libelf-0.163.sosftp-serv 2661 linuxtechi mem REG 253 ,0 14608 33618582 /usr/lib64/libutil-2.17.sosftp-serv 2661 linuxtechi mem REG 253,0 61856 33863972 /usr/lib64/liblber-2.4.so.2.10.3SFTP-SERV 2661 Linuxtech Mem Reg 253,0 344224 33863974 /usr/lib64/libldap-2.4.so.2. 33618298 /usr/lib64/libdl-2.17.Sosftp-Serv 2661 Linuxtech Mem Reg 253,0 2516624 33657314 /usr/lib64/libcrypto.so.1.0.2ksftp-Serv 2661 LINUXTetech. LD-2.17.SOSFTP-SERV 2661 LINUXTECHI 0R FIFO 0,8 0T0 24046 PIPESFTP-SERV 2661 Linuxtech 1W FIFO 0,8 0T0 24047 PIPESFTP-SERV 2661 LINUXTECHI 2W FIFO 0,8 0T0 /home/linuxtechi………………………………………………………………………………
Chcete-li zobrazit všechny otevřené soubory kromě uživatele root, použijte ^(symbol stříšky) před uživatele root ( lsof -u ^root),
[[e-mail chráněný] ~]# lsof -u ^root | MoreCommand PID TID Uživatel FD Typ Velikost zařízení /OFF NODE NAMEBUSBUS-DAEM 1662 DBUS CWD DIR 253,0 4096 128 /DBUS-DAEM 1662 DBUS DIR 253,0 4096 128 /DBUS-DAEM 1662 DBUS TXT 253,0 441176 171333333 / USR/BIN/DBUS-DAEMONDBUS-DAEM 1662 DBUS MEM REG 253,0 57824 33618566 /USR/LIB64/LIBNSS_FILES-2.17.SODBUS-DAEM 1662 DBUS REG 253,0 19512 33618298 /USR/LIB64/LIBDHDD-2.S17.SODBUS--2.17.SODBUS--2.17.SODBUS--2.1.1.12.1.12.17.S17.S17.S17.S17.S17.S17.S17.S17.SODBDST-DAEM. DEEM 1662 DBUS MEM REG 253,0 398272 33628261 /USR/LIB64/LIBPCRE.SO.1.2.0DBUS-DAEM 1662 DBUS Mem Reg 253,0 2107816 33618292 /USR/LIB64/LIBC-2.17.SOK …………………………………………………………………………………………………
Příklad:5) Seznam všech otevřených souborů internetových domén a domén UNIX (lsof -i -U)
Použijte volbu „-i -U“ v příkazu lsof k zobrazení seznamu všech otevřených souborů internetu a domén UNIX ve vašem systému, příklad je uveden níže
Příklad:6) Seznam všech otevřených síťových souborů IPv4 (lsof -i 4)
Použijte volbu "-i -4" v příkazu lsof k zobrazení seznamu všech otevřených síťových souborů pro IPv4,
Chcete-li zobrazit seznam všech otevřených síťových souborů IPv4 používaných konkrétním procesem, jehož proces id „any_number“, příklady jsou uvedeny níže
Předpokládejme, že chceme vypsat všechny síťové soubory IPv4 pro proces rpcbind
Syntaxe: # lsof i 4 -a -p {process_pid}
[[email protected] ~]# lsof -i 4 -a -p 1633COMMAND PID UŽIVATELE FD TYP VELIKOST ZAŘÍZENÍ/VYP. NÁZEV UZLU rpcbind 1633 rpc 4u IPv4 16576 3 rpsun 16576 3 rpsun 16576 3 rpsun 16576 3 rpsun 4 * 0 6 UDP *:sunrpcrpcbind 1633 rpc 10u IPv4 16649 0t0 UDP *:960[[e-mail chráněný] ~]#
Příklad:7) Vypsat všechny otevřené síťové soubory pro IPv6 (lsof -i 6)
Za předpokladu, že je podporována doména ipv6, výstup lsof bude něco jako níže,
Příklad:8) Vypsat všechny procesy TCP a UDP běžící na konkrétním portu (lsof -i TCP/UDP:port)
Předpokládejme, že chceme vypsat všechny procesy TCP běžící na portu 80, použijte níže uvedený příkaz
[[email protected] ~]# lsof -i TCP:80COMMAND PID UŽIVATEL FD TYP VELIKOST ZAŘÍZENÍ/VYPNUTÝ NÁZEV UZLUhttpd 2594 root 4u IPv6 22703 0t4 0 2 TCP 2 TCP 5 http http (poslech) httpd 2596 apache 4u ipv6 22703 0t0 tcp *:http (poslech) httpd 2597 apache 4u ipv6 22703 0t0 tcp *:http (poslouchejte) httpd 2598 apache 4u ipv6 22703 0t0 tcp *:httd) IPv6 22703 0t0 TCP *:http (LISTEN)[[e-mail chráněný] ~]#
Chcete-li zobrazit seznam všech otevřených souborů na portu TCP z rozsahu portů (1 až 1048), použijte následující příkaz
Chcete-li vypsat všechny procesy UDP běžící na konkrétním portu, použijte příkaz beneath
[[chráněno e-mailem] ~]# lsof -i UDP:16498COMMAND PID UŽIVATELE FD TYP VELIKOST ZAŘÍZENÍ/VYPNUTÝ NÁZEV UZLUdhclient 2494 root 21u IPv6 20952 mail 0t04 # e-mailem 0t04 # chráněno UDP *: #Poznámka :Chcete-li zobrazit seznam všech otevřených procesů UDP na vašem linuxovém systému, použijte příkaz „lsof -i UDP “
Příklad:9) Seznam všech otevřených souborů pro konkrétní zařízení (lsof
) Následující příkaz lze použít k zobrazení seznamu všech otevřených souborů na /dev/vda1.
Poznámka: V tomto případě je typ zařízení virtuální, obecně to může být typ /dev/hd<číslo>/ sd{číslo}
[e-mail chráněn] ~]# lsof /dev/vda1 | MoreCommand PID Uživatel FD Typ Velikost zařízení /OFF NADE NAMESystemd 1 Root CWD dir 253,1 4096 2 /Systemd 1 kořen RTD dir 253,1 4096 2 /Systemd 1 Root Reg 253,1 1577264 262271 /Systemd /SystemdSystemd 1 Root mem REG 253,1 18976 262252 /lib/x86_64-linux-gnu/libuuid.so.1.3.0systemd 1 kořen mem REG 253,1 262408 262245 /lib/x86_64-linux-gnu/libblkid.so.1.1.0systemd 1 kořen Mem Reg 253,1 14608 266364 /lib/x86_64-linux-gnu/libdl-2.23.Sosystemd 1 kořenový mem reg 253,1 456632 262207 /lib/x86_64-linux-gnu/libpcre.so.3.13.2Systemd 1 253,1 1868984 266362 /lib/x86_64-linux-gnu/libc-2.23.Sosystemd 1 kořenový mem reg 253,1 138696 266361 /lib/x86_64-linux-gnu/libpthread-2.23.Sosystemd 1 kořen REG 253,1 286824 261756 /lib/x86_64-linux-gnu/libmount.so.1.1.0Příklad:10) Seznam procesů s otevřenými soubory v systému souborů NFS
Existují situace, kdy jste na svůj linuxový box připojili souborový systém nfs, ale server nfs je nepřístupný a chcete vypsat všechny procesy s otevřenými soubory v tomto souborovém systému nfs,
[[email protected] ~]# lsof -bPříklad:11) Seznam otevřených souborů souvisejících s terminálem (lsof /dev/tty{číslo})
Následující příkaz se používá pro všechny otevřené soubory na /dev/tty1.
Poznámka :V tomto případě je typ terminálu „tty1“. Lze také použít jakýkoli jiný typ terminálu jako /dev/tty<číslo>
[[email protected] ~]# lsof /dev/tty1COMMAND PID USER FD TYP VELIKOST ZAŘÍZENÍ/VYP. NÁZEV UZLUbash 2442 root 0u CHR 4,1 4,1 4,1 4,1 4,1 4,1 4,1 0 t0/t /0 0t0/t /0 0t0/t /0 0t0 44689 / sh 1 /tty1bash 2442 root 2u CHR 4,1 0t0 4689 /dev/tty1bash 2442 root 255u CHR 4,1 0t0 4689 #[e-mail 0t0/4689]Příklad:12) Vypsat PID, název příkazu, deskriptor souboru, číslo zařízení a číslo inodu souboru (lsof -FpcfDi)
Jedna ze zajímavých možností v „lsof“ pro získání výstupu pole PID(P) a názvu příkazu(c) pro každý proces, deskriptor souboru (f), číslo zařízení souboru (D) a číslo inodu souboru (i) pro každý soubor každého procesu, příklad je uveden níže
[[e-mail chráněný] ~]# lsof -FpcfDi | morep1csystemdfcwdD0xfd00i128frtdD0xfd00i128ftxtD0xfd00i51034677fmemD0xfd00i33628284………………Poznámka: Zobrazí se dlouhý seznam výstupů, ale tento je z důvodu úspory místa zkrácen.
Příklad:13) Seznam všech síťových připojení (lsof -i)
Použijte volbu „-i“ v příkazu lsof k zobrazení seznamu všech procesů nebo příkazů souvisejících se sítí, příklad je uveden níže,
[Pre> [[Ochrana e -mailu] ~]# LSOF -ICOMMAND PID Uživatel FD typu Velikost zařízení/OFF NADESystemd 1 Root 41U IPv4 16863 0T0 TCP *:SUNRPC (Smaen) Systemd 1 Root 43u IPV4 16864 0T0 UDP *:SUNRPCPCBIND 1663 RPC 4U IPv4 16863 0T0 TCP *:SunRPC (poslouchat) RPCBIND 1663 RPC 5U IPV4 16864 0T0 UDP *:Sunrpcrpcbind 1663 RPC 11U IPV6 17051 0T0 UDP *:988SSHD 2294 Root 3u IPV4 19949 0T0 THSP *:SSHS (SSHS) 19965 0T0 TCP *:SSH (poslouchejte) RPC.STATD 2300 RPCUSER 10U IPV6 19974 0T0 UDP *:48486RPC.STATD 2300 RPCUSER 11U IPV6 20045 0T0 TCP *:39334 (Poslouchejte) RPC.Mount 2311110 Udp *19897 0T0 Udp *19 19897 0T0 Udp *:.mount 2311 root 8u IPv4 19911 0t0 TCP *:mountd (LISTEN)master 2433 root 13u IPv4 21026 master:1 Místní hostitel EN 1 0t0 IP6 TC 1027 0T0 TCP localhost:SMTP (poslouchejte) dhclient 2563 Root 6u IPv4 21589 0T0 UDP *:Bootpcdhclient 2583 Root 21U IPv6 21365 0T0 UDP *:10368SSHD 2600 3U IPV4 21737 0T0 ESTABLISHED)sshd 2659 root 3u IPv4 22056 0t0 TCP 192.168.1.3:ssh->192.168.1.9:52486 (ESTABLISHED) #[E-mail preprotected)] Příklad:14) Najděte soubor IPv4 /IPv6 Socket
Chcete-li najít soubor soketu IPv4, použijte níže uvedený příkaz, nahraďte IP adresu vaší systémovou IP
[[chráněno e-mailem] ~]# lsof [chráněno e-mailem] PID PŘÍKAZU UŽIVATEL FD TYP VELIKOST ZAŘÍZENÍ/VYPNUTÝ NÁZEV UZLU sshd 2600 root 3u IPv4 21737.919 23.6. 2659 Root 3U IPv4 22056 0T0 TCP 192.168.1.3:SSH ->192.168.1.9:52486 (zavedeno) SSHD 2663 Root 3U IPv4 22123 0T0 TCP 192.168.1.3:SSH ->192.168.1.9:52489 (založeno) 25004 0t0 TCP 192.168.1.3:ssh->192.168.1.9:52848 (navázáno) sshd 2728 linuxtechi 3u IPv4 25004 0t0 TCP 192.168.1.3:ssh->192.168.1.9:52848 (navázáno) [[email protected] ~] #Chcete-li najít soubor soketu IP verze 6 podle přidružené číselné adresy ve tvaru dvojtečky, která obsahuje řadu nul – např. adresa zpětné smyčky (127.0.0.1), použijte níže uvedený příkaz a možnosti:
[[chráněno e-mailem] ~]# lsof [chráněno e-mailem][::1]PŘÍKAZ PID UŽIVATEL FD TYP VELIKOST ZAŘÍZENÍ/VYPNUTÝ UZEL JMÉNOmaster 2433 root 14u IPv6 21027 0t0 p TCP localhost:s m ~]#Příklad:15) Vypsat všechny procesy nebo příkazy, které patří k ID procesu (lsof -p
) Předpokládejme, že chceme vypsat všechny procesy nebo příkazy, které patří ke konkrétnímu ID procesu, příklad je uveden níže
[[e-mail chráněn] ~]# lsof -p 2842 | moreCOMMAND PID USER FD typ zařízení SIZE / OFF NODE NAMEhttpd 2842 apache cwd DIR 253,0 4096 128 / httpd 2842 apache rtd DIR 253,0 4096 128 / httpd 2842 apache txt REG 253,0 523.680 34641136 / usr / sbin / httpdhttpd 2842 apache MEM REG 253,0 110808 33618576 /USR/LIB64/LIBRESOLV-2.17.SOHTTPD 2842 APACHE REG 253,0 27512 33618564 /USR/LIB64/LIBNSS_DNS-2. libnss_files-2.17.sohttpd 2842 apache mem reg 253,0 27808 17080385 /usr/lib64/httpd/modules/mod_cgi.sohttpd 2842 apache reg 253,0 68192 33628305 /usr/lib64/libbzbzbzbzbzbzbzí2.s1.1.s1.01.s14.0.6.srs.1s.1.01.01.Sols.S14.0 68192 33628305. ………………………………………Příklad:16) Zabijte všechny procesy, které patří konkrétnímu uživateli
Příkaz lsof se stává velmi užitečným tam, kde chceme zabít veškerý proces, který patří konkrétnímu uživateli, níže uvedený příklad zabije všechny procesy, které patří uživateli linuxtechi
[[e-mail chráněný] ~]# zabití -9 `lsof -t -u linuxtechi`[[e-mail chráněný] ~]#Příklad:17) Seznam všech otevřených souborů v konkrétním adresáři (lsod +D
) Předpokládejme, že chceme vypsat všechny otevřené soubory v adresáři /var/log, pak použijeme následující příkaz lsof,
[[email protected] ~]# lsof +D /var/log/COMMAND PID UŽIVATEL FD TYP VELIKOST/VYPNUTÍ ZAŘÍZENÍ NÁZEV UZLUauditd 1635 root 4w REG 253,02 a104117dit Root 3W reg 253,0 240 392280 /var/log/wpa_supplicant.Logtuned 2295 Root 3W reg 253,0 6000 17713597 /var/log/tuned/tuned.logryslogd 2296 root 6w reg 253,0 7118 392279/var/cronrSysLogd/cronrSysLogd/cronrSysLogd/cronrSogdd/cronrSysLogd/cronrSogdd/cronrSysLogd/cronrSysLogd/cronrSogdd/cronrSogdd/cronrSogdd/cronrSogdd/cronrslogd. 2296 Root 7W reg 253,0 449328 338975/var/log/messagesrsyslogd 2296 kořen 8w reg 253,0 26038 338976/var/log/securSysyslogd 2296 root 9W reg 253,0 1576 338977/var/log/log/log/log/log/log/log/log/log/logd 2296 2296 2296 2296 2296 2296 2296 2296 2296 2296 2296 2296 2296 2296 2296 2296 2296 2296 ROOGD , 0 9458 138 /var/log/boot.loghttpd 2837 Root 2W reg 253,0 2829 34768157/var/log/httpd/errog_loghttpd 2837 kořen 7W reg 253,0 0 34824416/var/log/httpd/přístupový 253,0 2829 34768157 /var/log/httpd/error_loghttpd 2838 ap AChE 7W REG 253,0 0 34824416 / var / log / httpd / access_loghttpd 2839 Apache 2w REG 253,0 2829 34768157 / var / log / httpd / error_loghttpd 2839 Apache 7w REG 253,0 0 34824416 / var / log / httpd / access_loghttpd 2840 apache 2w REG 253,0 2829 34768157 /var/log/httpd/error_loghttpd 2840 apache 7w REG 253,0 0 34824416 /var/log/httpd/access_loghttpd 2841 apache 2w REG 253,0 2829 34768157 /var/log/httpd/ error_loghttpd 2841 apache 7w REG 253,0 0 34824416 /var/log/httpd/access_loghttpd 2842 apache 2w REG 253,0 2829 34768157 /var/log/httpd/error_loghttpd 2842 apache 7w REG 253,0 0 34824416 /var/log/httpd /access_log[[email protected] ~]#Poznámka: In above command if we use +D option then lsof will list all open files of a directory recursively and if you don’t want to list open files of directory recursively then use “+d” option
Example:18) “lsof” to check who opened the log file (to find PID)
The following command option is used to find who opened the /var/log/httpd/access.log file and what is the PID of that process. And then with “ps -ef” command we can find exact user
[[email protected] ~]# lsof -t /var/log/httpd/access_log310931103111311231133114[[email protected] ~]#[[email protected] ~]# ps -ef | grep -E "3109|3110|3111|3112|3113|3114" | grep -v grepor[[email protected] ~]# ps -fp "$(lsof -t /var/log/httpd/access_log | xargs echo)"root 3109 1 0 03:36 ? 00:00:00 /usr/sbin/httpd -DFOREGROUNDapache 3110 3109 0 03:36 ? 00:00:00 /usr/sbin/httpd -DFOREGROUNDapache 3111 3109 0 03:36 ? 00:00:00 /usr/sbin/httpd -DFOREGROUNDapache 3112 3109 0 03:36 ? 00:00:00 /usr/sbin/httpd -DFOREGROUNDapache 3113 3109 0 03:36 ? 00:00:00 /usr/sbin/httpd -DFOREGROUNDapache 3114 3109 0 03:36 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND[[email protected] ~]#Many options of the “lsof” command can be combined for multiple purposes as below are some combination of flags “-c”, “-u” and “-I”. For more details refer the manual page.
Přečtěte si také :11 Xargs Command Examples in Linux
The below command combination will give output every 1 second about “linuxtechi” home directory what all the files opened repeatedly.
[email protected] ~}# lsof -u linuxtechi -c init -a -r1=======COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEinita.sh 2971 linuxtechi cwd DIR 8,1 4096 393218 /home/linuxtechiinita.sh 2971 linuxtechi rtd DIR 8,1 4096 2 /inita.sh 2971 linuxtechi txt REG 8,1 83344 524367 /bin/dashinita.sh 2971 linuxtechi mem REG 8,1 1434567 1443695 /lib/i386-linux-gnu/libc-2.13.so……………………………………………………………………………Conclusion:
As mentioned in the introduction section “lsof” is very powerful and useful command in Linux based distributions. This command and options listed can be used for various purposes like debugging, troubleshooting and triaging Linux processes. Mentioned options and combinations if tried, will help one to establish thorough understanding of “lsof” command. Other commands like lstat , stat and ls also can be explored in combination of “lsof” command.
Přečtěte si také : How to Enable Timestamp in Linux History Command Output
14 Příklady příkazů SCP pro bezpečný přenos souborů v systému Linux 17 užitečných rsync (vzdálená synchronizace) Příklady příkazů v LinuxuLinux