lsof adalah utilitas baris perintah untuk semua sistem operasi seperti Unix dan Linux untuk memeriksa “daftar file yang terbuka Nama "lsof" sendiri berasal dari fungsi ini. Perintah lsof terutama digunakan untuk mengambil informasi tentang file yang dibuka oleh berbagai proses. File terbuka dalam suatu sistem dapat dari jenis yang berbeda seperti file disk, soket jaringan, pipa bernama dan perangkat. Fitur khusus ini memungkinkan seseorang untuk men-debug dan memahami Sistem Operasi Linux dengan cara yang lebih baik.
Saat kita melakukan instalasi minimal CentOS / RHEL / Ubuntu / OpenSUSE , lsof bukan bagian dari instalasi default, jadi gunakan perintah berikut untuk menginstal perintah atau utilitas lsof
Untuk Sistem CentOS / RHEL,
~] # yum install lsof -y
Sistem Berbasis Debian (Ubuntu / Linux Mint)
~] # apt install lsof -y
Untuk Sistem OpenSUSE,
~] # zypper install lsof
Perintah "lsof" dilengkapi dengan banyak opsi dan sakelar. Akan sangat menarik untuk mengeksplorasi beberapa dari yang penting ini. Pada artikel ini kita akan membahas 18 contoh perintah lsof yang berguna untuk para geeks Linux.
Contoh:1) Daftar semua file yang terbuka dari sistem Anda (lsof)
Menjalankan perintah lsof tanpa opsi apa pun akan mencantumkan semua file terbuka di sistem Anda yang termasuk dalam semua proses aktif.
Hanya mengetik perintah “lsof” tanpa opsi apa pun di baris perintah memberikan output berikut,
Catatan :- Karena output lsof memberikan banyak informasi ke STDOUT, akan lebih baik menggunakan pipa “|” operasi untuk melihat halaman keluaran ini demi halaman.
[[dilindungi email] ~]# lsof | MORECOMMAND PID PENGGUNA PENGGUNA FD UKURAN PERANGKAT/MATI NODE NODE NAMESTEMD 1 ROOK CWD DIR 253,0 4096 128/Systemd 1 Root RTD Dir 253,0 4096 128/Systemd 1 Root TXT Reg 253,0 148960 50674818/USR/LIB/LIB/SYSTEMD/ SystemdSystemd 1 root memang reg 253,0 20032 33628284 /usr/lib64/libuuid.so.1.3.0systemd 1 root mem regOutput perintah di atas jika Anda memeriksa dengan cermat memberikan banyak informasi dengan banyak parameter. Misalnya, proses “systemd ” (yang merupakan proses daemon) memiliki ID Proses (PID ) dari “1”, Pengguna adalah “root “, File Deskriptor (FD ) sebagai “cwd ” dan lain-lain. FD muncul dengan banyak nilai, seperti yang diketahui bahwa File Descriptor dibuat untuk setiap file yang terbuka secara otomatis di Sistem Linux. Di bawah ini adalah beberapa nilai “FD” terkenal yang digunakan untuk perintah lsof,
Catatan :Dalam beberapa kasus, "mem" diikuti oleh angka dan berbagai karakter seperti "r", "u", "w" dll. Karakter ini adalah "r" untuk membaca, "w" untuk menulis, "u" untuk membaca dan menulis.
Terakhir, "JENIS ” pada output perintah menunjukkan jenis file. Berikut ini adalah jenis file standar dalam sistem Linux.
Bidang lain yang ditampilkan bersama dengan ini adalah sebagai berikut,
- PERANGKAT –> Id perangkat
- UKURAN/MATI –> Ukuran sebenarnya dari proses ini (diambil selama run time)
- TIDAK -> Biasanya nomor inode direktori atau direktori induk
- NAMA –> Jalur atau tautan
Contoh:2) Daftar file yang terbuka dari sistem file tertentu (/proc)
Seperti yang Anda ketahui, “/proc ” hanya akan ada selama masa hidup OS Linux, direktori ini berisi banyak informasi penting terkait proses. Mengeksekusi “lsof” pada /proc akan memberikan output yang menarik untuk kita jelajahi,
[[email protected] ~]# lsof /procCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NODEsystemd 1 root 9r REG 0,3 0 6690 / mountinfo /swapssystemd-j 462 root 10r reg 0,3 0 6936/proc/sys/kernel/hostnamelsof 5186 root 3r dir 0,3 0 1/proclsof 5186 root 6r dir 0,3 0 28890/proc/5186/fd [ dilindungi] ~]#
Seperti disebutkan sebelumnya, "lsof" dari "lsof" itu sendiri ditangkap di sini dan semua detailnya ditampilkan. Selain "lsof" ada proses lain seperti systemd dan rsyslogd yang merupakan daemon yang digunakan untuk tujuan swap, pemasangan, dll.
Demikian pula, kita dapat membuat daftar file yang terbuka dari sistem file lain seperti /var/log,
[[email protected] ~]# lsof /var/log/
Perintah lsof menjadi sangat berguna dalam situasi di mana perintah df dan du menunjukkan penggunaan disk yang berbeda dari sistem file yang sama, dengan menggunakan perintah lsof kita dapat menemukan file yang dihapus saat dibuka dan digunakan oleh beberapa proses,
[[dilindungi email] ~]# lsof /var/log | grep -i "dihapus"
Perintah di atas akan memberi Anda pid file yang telah dihapus tetapi masih ada di sistem dalam keadaan terhapus. Jadi, untuk melepaskan ruang dari sistem file, kita dapat dengan aman mematikan proses dengan pid-nya.
Contoh:3) Daftar file yang terbuka untuk perintah “lsof”
“lsof” sendiri memunculkan pesan kesalahan,
[[email protected] ~]# lsof lsoflsof:status error pada lsof:Tidak ada file atau direktori seperti itu lsof 4.87
Contoh:4) Daftar file yang terbuka untuk pengguna (lsof -u )
“lsof” dapat digunakan untuk semua pengguna yang telah login ke Sistem Linux. Dalam hal ini “lsof” akan menampilkan semua file yang dibuka untuk masing-masing pengguna.
Mencantumkan semua file yang terbuka untuk pengguna root
[[email protected] ~]# lsof -u root | MORECOMMAND PID Pengguna FD Ukuran Perangkat/Off Node NodeSystemd 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/lib/systemd/systemdsystemd 1 root memang reg 253,0 20032 33628284 /usr/lib64/libuuid.so.1.3.0systemd 1 root memang 253,0 252704 33745961 /usr/lib64/libblkid.so.1.1.0systemd 1 root memm. 33628275 /usr/lib64/libz.so.1.2.7systemd 1 root mem REG 253,0 153192 33618596 /usr/lib64/liblzma.so.5.0.99systemd mem so.1.1.0………………………………………………………
Daftar file yang terbuka untuk pengguna non-root, mari kita lihat semua file yang terbuka untuk pengguna linuxtechi,
[[email protected] ~]# lsof -u linuxtechi | moreOr[[email protected] ~]# lsof -l -u linuxtechi | lebih banyak
Untuk Mendaftar semua file yang terbuka kecuali pengguna root, gunakan ^(simbol tanda sisipan) di depan pengguna root ( lsof -u ^root),
[[email protected] ~]# lsof -u ^root | MORECOMMAND PID PENGGUNA PENGGUNA FD UKURAN PERANGKAT /OFF NODE NAMEKBUS-DAEM 1662 DBUS CWD DIR 253,0 4096 128 /DBUS-DAEM 1662 DBUS RTD DIR 253,0 4096 128 /DBUS-DAEM 1662 DBUS TXT 253,0 441176 171 171 /DBUS 1662 /REG 253,0 441176 17171 /DBUS 1662 / USR/bin/dbus-daemondbus-daem 1662 dbus memm 253,0 57824 33618566 /usr/lib64/libnss_files-2.17.sodbus-daem 1662 dbus reg 253,0 19512 336181818298/UUSR64/us. daem 1662 dbus mem REG 253,0 398272 33628261 /usr/lib64/libpcre.so.1.2.0dbus-daem 1662 dbus . …………………………………………………………………………………………
Contoh:5) Daftar semua file domain Internet dan UNIX yang terbuka (lsof -i -U)
Gunakan opsi “-i -U” dalam perintah lsof untuk mendaftar semua file domain internet dan UNIX yang terbuka di sistem Anda, contoh ditunjukkan di bawah ini
Contoh:6) Daftar semua file jaringan IPv4 yang terbuka (lsof -i 4)
Gunakan opsi “-i -4” dalam perintah lsof untuk membuat daftar semua file jaringan terbuka untuk IPv4,
[[email protected] ~]# lsof -i 4COMMAND PID PENGGUNA FD TYPE DEVICE SIZE/OFF NODE NAMEsystemd 1 root 42u IPv4 16577 0t0 TCP 16 RPC 4U IPv4 16576 0T0 TCP *:SunRPC (Listen) SSHD 2258 ROOT 3U IPv4 19493 0T0 TCP *:SSH (Listen) Master 2360 ROOT 13U IPV4 20087 0T0 TCP LOCALHOST:SMTP (Listen) DhClient 2494 ROOT 6U IPV4. BOOTPCDHCLIENT 2494 ROOT 20U IPV4 20951 0T0 UDP *:24884DHCLIENT 2514 ROOT 6U IPV4 20866 0T0 UDP *:BOOTPCSSHD 2532 ROOT 3U IPV4 21120 0T0 TCP 192.168.1.6:SSH-SSH-SSH-> 29.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.19.192 TCP 192.168.1.6:ssh->192.168.1.5:65112 (ESTABLISHED)sshd 2621 root 3u IPv4 23506 0t0 TCP 192.168.1.6:ssh->192.168.1.9:65422 (ESTABLISHED)sshd root 3u IPv4 23863 0t0 TCP 192.168.1.6:ssh->192.168.1.9:49992 (ESTABLISHED)sshd 2657 linuxtechi 3u IPv4 23795 0t0 TCP 192.168.1.6:ssh1.9->192.168.4 0t0 TCP 192.168.1.6:ssh->192.168.1.9:49992 (DIDIRIKAN)[[dilindungi email] ~]#
Untuk membuat daftar semua file jaringan IPv4 terbuka yang digunakan oleh proses tertentu yang id prosesnya “nomor_apapun”, contohnya ditunjukkan di bawah
Mari kita asumsikan kita ingin membuat daftar semua file jaringan IPv4 untuk proses rpcbind
Sintaks : # lsof i 4 -a -p {process_pid}
[[email protected] ~]# lsof -i 4 -a -p 1633COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMErpcbind 1633 rpc 4u IPv4 16576 0t0 TCP *:sunrpc 33 165c STEN) UDP *:sunrpcrpcbind 1633 rpc 10u IPv4 16649 0t0 UDP *:960[[email protected] ~]#
Contoh:7) Daftar semua file jaringan terbuka untuk IPv6 (lsof -i 6)
Dengan asumsi domain ipv6 didukung, output dari lsof akan menjadi seperti di bawah ini,
Contoh:8) Daftar semua proses TCP &UDP yang berjalan pada port tertentu (lsof -i TCP/UDP:port)
Mari kita asumsikan kita ingin membuat daftar semua proses TCP yang berjalan pada port 80, gunakan perintah di bawah ini
[[email protected] ~]# lsof -i TCP:80COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMAhttpd 2594 root 4u IPv6 22703 0t0 TCP *:http (DENGARKAN) httpd 2595 25 www IPv6 22703 0t0 TCP *:http (DENGARKAN)[[email protected] ~]#
Untuk membuat daftar semua file yang terbuka pada port TCP dari rentang port (1 hingga 1048), gunakan perintah berikut
[[email protected] ~]# lsof -i TCP:1-1048COMMAND PID PENGGUNA FD TYPE DEVICE SIZE/OFF NODE NAMEsystemd 1 root 41u IPv4 16863 0t0 *:sunrpc IPv4 *:sunrpc IPv4 *:SunRPC (Listen) RPCBind 1663 RPC 4U IPv4 16863 0T0 TCP *:SunRPC (Listen) RPCBind 1663 RPC 6U IPv6 16865 0T0 TCP *:Sunrpc (Listen) SSHD 2294 ROOT 3U IPv4 19949 TCP *:SUNRPC (Listen) SSHD 2294 ROOT 3U IPv4 19949 ROOT 4U IPv6 19965 0T0 TCP *:SSH (Listen) Master 2433 ROOT 13U IPv4 21026 0T0 TCP LOCALHOST:SMTP (Listen) Master 2433 Root 14U IPv6 21027 0T0 TCP Localhost:SMTP (Listen) SSHD 2600 ROOT 3U IPV4 217. 1.3:ssh->192.168.1.9:52393 (ESTABLISHED)sshd 2659 root 3u IPv4 22056 0t0 TCP 192.168.1.3:ssh->192.168.1.9:52486 (ESTABLISHED)sshd 22 2663 >192.168.1.9 :52489 (mapan) httpd 2837 root 4u ipv6 26112 0t0 tcp *:http (dengarkan) httpd 2838 apache 4u ipv6 26112 0t0 tcp *:http (dengarkan) httpd 2839 Apache 4u ipv6 26112 0tp (Listen) httpd 2839 Apache 4u IPv6 26112 0tp (Listen):Httpd 2839 Apache 4U IPv6 26112 0TACH0:HTTPD 2839 APACHE 4U 26112 0TACH (LENTPD (HTTPD 2839 HTTPD (HTTPD 2839 HTTPD 2839 IPV6 26112 4U IPv6 26112 0T0 TCP *:http (dengarkan) httpd 2841 Apache 4u ipv6 26112 0t0 tcp *:http (dengarkan) httpd 2842 Apache 4u ipv6 26112 0T0 TCP *:http (Listen) SSHD 289.1612 2682 TCP *:HTTP (Listen) SSHD 2891.181.182 0 :ssh->192.168.1.9:53541 (DESTABLISHED)sshd 2895 linuxtechi 3u IPv4 26896 0t0 TCP 192.168.1.3:ssh->192.168.1.9:53541 (ESTABLISHED)[[email protected] ~]#
Untuk Mendaftar semua proses UDP yang berjalan pada port tertentu, gunakan perintah di bawah ini
[[email protected] ~]# lsof -i UDP:16498COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEdhclient 2494 root 21u IPv6 20952 0t0 UDP *:16498[[email protected] ~]#Catatan :Untuk membuat daftar semua proses UDP yang terbuka di sistem linux Anda, gunakan perintah “lsof -i UDP ”
Contoh:9) Daftar semua file yang terbuka untuk perangkat tertentu (lsof
) Perintah berikut dapat digunakan untuk membuat daftar semua file yang terbuka di /dev/vda1.
Catatan: Dalam hal ini jenis perangkat adalah virtual, secara umum dapat berupa jenis /dev/hd
/ sd{number} [email protected] ~]# lsof /dev/vda1 | MORECOMMAND PID Pengguna FD Tipe Ukuran Perangkat /OFF Node NameSystemd 1 Root CWD Dir 253,1 4096 2 /Systemd 1 Root RTD Dir 253,1 4096 2 /Systemd 1 Root TXT Reg 253,1 1577264 262271 /lib /SystemD /SystemDDSDSTEMD 1 Root Root mem REG 253,1 18976 262252 /lib/x86_64-linux-gnu/libuuid.so.1.3.0systemd 1 root mem REG 253,1 262408 262245 /lib/x86_64-linux -gnu/libblki -gnu/libblki mem REG 253,1 14608 266364 /lib/x86_64-linux-gnu/libdl-2.23.sosystemd 1 root mem REG 253,1 456632 262207 /lib/x86_64-linux- root mem REG 253,1 456632 262207 /lib/x86_64-linux-g 3.2 system re. 253,1 1868984 266362 /lib/x86_64-linux-gnu/libc-2.23.sosystemd 1 root mem REG 253,1 138696 266361 /lib/x86_64-linux-gnu/libpthread-2.23 2568 261756 /lib/x86_64-linux-gnu/libmount.so.1.1.0Contoh:10) Daftar proses dengan file yang terbuka pada sistem file NFS
Ada beberapa situasi di mana Anda telah memasang sistem file nfs di kotak linux Anda tetapi server nfs tidak dapat diakses dan ingin membuat daftar semua proses dengan file yang terbuka pada sistem file nfs itu,
[[email protected] ~]# lsof -bContoh:11) Daftar file terbuka terkait terminal (lsof /dev/tty{number})
Perintah berikut digunakan untuk semua file yang terbuka di /dev/tty1.
Catatan :Dalam hal ini tipe terminal adalah “tty1”. Jenis terminal lainnya juga dapat digunakan seperti /dev/tty
[[email protected] ~]# lsof /dev/tty1COMMAND PID PENGGUNA FD TYPE DEVICE SIZE/OFF NODE NAMEbash 2442 root 0u CHR 4,1 HR 0t0 4689 /dev/tty1bash 2442 root 0u CHR 4,1 HR 0t0 4689 /dev/tty1bash 0 2442 /tty1bash 2442 root 2u CHR 4,1 0t0 4689 /dev/tty1bash 2442 root 255u CHR 4,1 0t0 4689 /dev/tty1[[email protected] ~]#Contoh:12) Daftar PID, Nama Perintah, Deskriptor File, Nomor Perangkat &Nomor Inode File (lsof -FpcfDi)
Salah satu opsi yang menarik di "lsof" untuk mendapatkan output bidang PID(P) dan nama perintah(c) untuk setiap proses, deskriptor file (f), nomor perangkat file (D), dan nomor inode file (i) untuk setiap file dari setiap proses, contoh ditunjukkan di bawah ini
[[email protected] ~]# lsof -FpcfDi | morep1csystemdfcwdD0xfd00i128frtdD0xfd00i128ftxtD0xfd00i51034677fmemD0xfd00i33628284………………Catatan: Daftar panjang keluaran ditampilkan, tetapi ini dipotong pendek untuk menghemat ruang.
Contoh:13) Daftar semua koneksi jaringan (lsof -i)
Gunakan opsi “-i” dalam perintah lsof untuk mendaftar semua proses atau perintah terkait jaringan, contoh ditunjukkan di bawah ini,
[[email dilindungi] ~]# lsof -iCommand pengguna pid fd tipe ukuran perangkat/off node namesystemd 1 root 41u ipv4 16863 0t0 tcp *:sunrpc (listen) systemd 1 root 43u ipv4 16864 0t0 udp *:sunrpccccck 166u ipv4 16864 0t0 udp *:sunrpccccck 166u ipv4 16864 0t0 udp *:sunrpcrpcccck 166u ipv4 16864 0t0 udp *:sunrpccccck 166u ipv4 16864 0t0 udp *:sunrpccccck 166u ipv4 16864 0t0 udp *:sunrpccccck 16 4U IPv4 16863 0T0 TCP *:SunRPC (Listen) RPCBind 1663 RPC 5U IPv4 16864 0T0 UDP *:SunrpcrpcBind 1663 RPC 11u IPv6 17051 0T0 UDP *:988SSHD 2294 ROOK 3 IPV6 0T0 TOP6 0T0 UDP *:988SSHD 2294 ROOTSH6 IPV6 0T0 TOP0 TOP0 TOP0 TOP6 *TOP0 TOP6:988SSHD 2294 ROOKSH6 IPV6 0T0 TOP0 TOP0 TOP0 TOP6:988SSHD 2294 ROOKSSH6 IPV6 IPV6 0T0 THOR0 UDP *:988SSHD 2294 ROOTSH6 IPv6 19965 0t0 TCP *:ssh (DENGARKAN)rpc.statd 2300 rpcuser 10u IPv6 19974 0t0 UDP *:48486rpc.statd 2300 rpcuser 11u IPv6 20045 0t0 DP 393 330t0 p0 .mount 2311 root 8u IPv4 19911 0t0 TCP *:mountd (LISTEN)master 2433 root 13u IPv4 21026 0t0 TCP localhost:smtp (LISTEN)master 2433 1027 0T0 TCP LocalHost:SMTP (Listen) DhClient 2563 Root 6U IPv4 21589 0T0 UDP *:BOOTPCDHCLIENT 2583 ROOT 21U IPv6 21365 0T0 UDP *:1036.16.18.16.18.18.18.18.19.19.19.19.19.19.19.1. ESTABLISHED)sshd 2659 root 3u IPv4 22056 0t0 TCP 192.168.1.3:ssh->192.168.1.9:52486 (ESTABLISHED)[[email protected] ~]#
Contoh:14) Temukan file Socket IPv4 /IPv6
Untuk menemukan file soket IPv4 gunakan perintah di bawah ini, ganti alamat IP dengan IP sistem Anda
[[email protected] ~]# lsof [email protected]COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEsshd 2600 root 3u IPv4 21737 1.968.13.68sshd0t0 TCP 2659 root 3u IPv4 22056 0t0 TCP 192.168.1.3:ssh->192.168.1.9:52486 (ESTABLISHED)sshd 2663 root root 3u IPv4 22123 0t0 TCP 192.168. 25004 0t0 TCP 192.168.1.3:ssh->192.168.1.9:52848 (ESTABLISHED)sshd 2728 linuxtechi 3u IPv4 25004 0t0 TCP 192.168.1.3:ssh->192.168.1.9:52848 (ESTABLISHED)[[email] /pra>Untuk menemukan file soket IP versi 6 dengan alamat bentuk titik dua numerik terkait yang memiliki angka nol di dalamnya – mis., alamat loop-back (127.0.0.1) gunakan perintah dan opsi di bawah ini:
[[email protected] ~]# lsof [email protected][::1]COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEmaster 2433 root 14u IPv6 21027 0t0 TCP localhost:smtp (DENGARKAN dilindungi)[[email protected] ~]#Contoh:15) Daftar semua Proses atau Perintah yang dimiliki oleh ID Proses (lsof -p
) Mari kita asumsikan kita ingin membuat daftar semua proses atau perintah yang dimiliki oleh id proses tertentu, Contoh ditunjukkan di bawah ini
[[email protected] ~]# lsof -p 2842 | moreCOMMAND PID PENGGUNA FD JENIS PERANGKAT UKURAN / 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 34.641.136 / usr / sbin / httpdhttpd 2842 apache MEM Reg 253,0 110808 33618576 /usr/lib64/libresolv-2.17.sohttpd 2842 apache mem 253,0 27512 33618564 /usr/lib64/libnss_dns-2.17.sohttpe646/u23646/naPe62 libnss_files-2.17.sohttpd 2842 apache mem REG 253,0 27808 17080385 /usr/lib64/httpd/modules/mod_cgi.sohttpd 2842 apache mem 83 . ………………………………………Contoh:16) Matikan semua proses milik pengguna tertentu
Perintah lsof menjadi sangat berguna di mana kita ingin mematikan semua proses milik pengguna tertentu, contoh di bawah ini akan mematikan semua proses milik pengguna linuxtechi
[[email protected] ~]# kill -9 `lsof -t -u linuxtechi`[[email protected] ~]#Contoh:17) Daftar semua file yang terbuka di bawah direktori tertentu (lsod +D
) Mari kita asumsikan kita ingin membuat daftar semua file yang terbuka di bawah direktori /var/log, kemudian gunakan perintah lsof berikut,
[[email protected] ~]# lsof +D /var/log/COMMAND PID PENGGUNA FD TYPE DEVICE SIZE/OFF NODE NAMAauditd 1635 root 4w REG 253,0 1177238 51031316/audit.logw root 3w REG 253,0 240 392280 /var/log/wpa_supplicant.logtuned 2295 root 3w REG 253,0 6000 17713597 /var/log/tuned/tuned.logrsyslog 118 2296 2296 root 7w REG 253,0 449328 338975 /var/log/messagesrsyslogd 2296 root 8w REG 253,0 26038 338976 /var/log/securersyslogd 2296 root 9wlogs 9wlogs ,0 9458 138 /var/log/boot.loghttpd 2837 root 2w REG 253,0 2829 34768157 /var/log/httpd/error_loghttpd 2837 root 7w REG 16 / log 38 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 34_16 log/access 2844 httpd 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] ~]#Catatan: 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.
Baca Juga :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……………………………………………………………………………Kesimpulan:
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.
Baca Juga : How to Enable Timestamp in Linux History Command Output
14 Contoh Perintah SCP untuk Mentransfer File dengan Aman di Linux 17 Contoh Perintah rsync (sinkronisasi jarak jauh) yang berguna di LinuxLinux