GNU/Linux >> Belajar Linux >  >> Linux

Cara:Menggunakan lsof – 10 Perintah Penting Untuk Memecahkan Masalah Server Linux Anda

Pengantar

Pada titik tertentu dalam karir mereka, setiap orang akan memecahkan masalah. Dan setiap orang memiliki langkah pemecahan masalah favorit mereka untuk digunakan. Bagi banyak admin sistem, langkah pertama yang harus dilakukan adalah memastikan semuanya mutakhir. Bagi yang lain, ini hanya masalah memeriksa file log sebelum menemukan solusi Anda. Bagi saya dan orang lain di sini di Atlantic.Net, ini lsof; utilitas baris perintah yang digunakan untuk membuat daftar informasi tentang file yang dibuka oleh berbagai proses.

Sebagian besar digunakan untuk memecahkan masalah koneksi jaringan, lsof adalah aplikasi yang kuat namun terlalu sedikit dikenal. Jika Anda terbiasa dengan perintah umum Linux, lsof adalah alat yang mudah diingat karena “mendaftarkan file yang terbuka”.

Prasyarat

lsof adalah perintah khusus Unix. Untuk menggunakannya untuk mengidentifikasi informasi sistem, Anda harus menggunakan sistem bergaya Unix, seperti CentOS atau Ubuntu. lsof sudah diinstal sebelumnya pada sistem ini.

Jika Anda menggunakan sistem Windows, Anda bisa mendapatkan hasil yang serupa dengan menggunakan menu Process Explorer, serta perintah netstat dan sysinternals.

lsof Tanda Penggunaan

Satu hal yang penting untuk dipahami adalah bahwa lsof memiliki sejumlah besar flag yang tersedia yang dapat digunakan untuk memodifikasi output yang Anda terima. Di bawah ini menunjukkan semua tanda yang tersedia:

[[email protected] ~]# lsof --help
    usage: [-?abhlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-f[gG]] [+|-e s]
    [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
    [+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]

Menelusuri setiap bendera akan menjadi artikel yang lebih panjang, jadi kami akan membuat semuanya tetap sederhana dan hanya mencakup opsi sehari-hari yang paling sering digunakan.

Tanda Opsi Utama

Penting untuk memahami cara kerja lsof, terutama secara default. Saat Anda meneruskan opsi ke perintah lsof, perilaku defaultnya adalah ATAU hasil. Ini berarti menjalankan lsof menggunakan -i serta -p tandai Anda akan mendapatkan hasil keduanya.

Ini adalah tanda yang paling sering digunakan dalam pemecahan masalah kami:

default : with no options flags, lsof lists all open files for active processes
grouping : it's possible to group options, such as passing the flags though -nPi. Just keep an eye out for which options take additional parameters
-a : AND the result (instead of the default OR)
-l : show the userID instead of the username in the output
-h : get help
-i : selects the listing of files that match
-n : stop host name resolution of network numbers
-t : get process IDs only
-P : stop conversion of port numbers to port names

Memulai

Mencantumkan semua file yang terbuka.

# lsof

Daftar semua file yang terbuka.

Tampilkan semua koneksi:

# lsof -i

Tampilkan semua koneksi

Server yang kami uji adalah server Atlantic.Net CentOS6 baru yang tidak menginstal paket perangkat lunak tambahan. Anda dapat melihat dari output di atas bahwa server hanya mendengarkan lalu lintas SSH dan SMTP. Jika Anda ingin melihat nomor port sebenarnya alih-alih nama layanan, kami harus menjalankan perintah menggunakan -Pi bendera:

lsof -Pi

Tampilkan semua koneksi yang mendengarkan pada port tanpa menyelesaikan nama layanan.

Seperti yang Anda lihat, semua *:ssh dan localhost:smtp output telah dikonversi ke *:22 dan localhost:25 . Bagi sebagian besar administrator sistem, terutama jika Anda tidak terbiasa menelusuri dan menganalisis layanan sistem, seringkali lebih mudah untuk memecahkan masalah dengan mengidentifikasi port secara langsung daripada menggunakan nama layanan.

Tampilkan koneksi pada port IPv6:

lsof -i6

Tampilkan koneksi pada port IPv6

Dibandingkan dengan lsof -i perintah sebelumnya, perintah ini secara khusus mencari layanan dengan TYPE dari IPv6 .

Tampilkan koneksi pada port tertentu tanpa menyelesaikan nama layanan:

lsof -Pi :25

Tampilkan koneksi pada port tertentu tanpa menyelesaikan nama layanan

Mencari secara khusus untuk semua proses saat ini mendengarkan pada port 25 menunjukkan bahwa ada dua proses saat ini pada sistem (satu IPv4, satu IPv6) yang berjalan. Tak satu pun dari proses ini mendengarkan koneksi eksternal.

Tampilkan port mendengarkan:

lsof -i -sTCP:LISTEN

Tampilkan port mendengarkan

Perintah ini mencantumkan semua proses yang berjalan yang ada di LISTEN status, artinya mereka secara aktif mendengarkan koneksi yang masuk.

Tampilkan siapa yang menggunakan file:

lsof /path/of/file

Anda dapat melihat dari perintah di atas dua proses sedang aktif berjalan dan menggunakan /var/log/ pesan file dalam beberapa cara.

Tampilkan semua file yang terbuka dalam direktori secara rekursif:

lsof +D /usr/lib

Menampilkan semua file yang terbuka di direktori secara rekursif

Pada sistem pengujian kami, menggunakan +D flag menunjukkan enam proses terbuka terpisah yang berasal dari /usr/lib direktori.

Tampilkan file yang dibuka oleh pengguna:

lsof -u atlantic-noc

Tampilkan file yang dibuka oleh pengguna

Pengguna atlantic-noc memiliki sesi SSH aktif dengan id proses (PID) 7769.

Tampilkan semua file yang terbuka dengan ID proses tertentu:

lsof -p 7790

Tampilkan semua file yang terbuka dengan ID proses tertentu

 -p opsi memfilter file yang terbuka sehingga hanya file dengan id proses yang ditentukan yang ditampilkan. Dalam hal ini, PID 7790. Anda dapat memilih beberapa PID dengan menentukan koma, seperti -p 7789,7790

Tampilkan semua aktivitas jaringan untuk pengguna tertentu:

lsof -a -u atlantic-noc -i

-a bendera menggabungkan (mengubah perilaku OR default menjadi DAN) -u dan -i flag untuk memberikan daftar penggunaan file jaringan untuk pengguna atlantic-noc; dalam hal ini hanya satu sesi SSH.

Ada Lagi?

Perintah yang disajikan di atas hanyalah permulaan untuk lsof; alat serbaguna yang dapat digunakan sendiri atau dikombinasikan dengan alat pemecahan masalah Unix lainnya, seperti strace. Tapi itu artikel untuk lain waktu.

Jangan lupa untuk memeriksa blog kami untuk mengetahui pembaruan apa pun pada artikel ini, postingan terkait Linux lainnya, dan primer perintah Unix lebih lanjut, atau pelajari lebih lanjut tentang layanan hosting VPS kami yang andal.


Linux
  1. Cara Mengatasi Masalah Saat situs Anda down di Server Linux

  2. Cara Mengatasi Masalah Saat situs Anda down di Server Linux

  3. Cara Mengurutkan File di Linux menggunakan Perintah Sortir

  1. Cara Mentransfer File Antara Dua Komputer menggunakan Perintah nc dan pv

  2. Cara Mengelola File Log Menggunakan Logrotate Di Linux

  3. Cara Menggunakan OpenSSH untuk Menghubungkan ke Server Linux Anda

  1. Cara Menyinkronkan Waktu di Server Linux menggunakan Chrony

  2. Cara Membuat CS:GO Server Di VPS Linux

  3. Cara Memantau Server Linux Anda menggunakan osquery