Hal yang baik tentang Linux adalah Anda dapat dengan mudah melihat dan mengelola semuanya, mulai dari proses boot hingga penginstalan paket perangkat lunak. Di sini kita membahas bagaimana Anda dapat menggunakan perintah lsof di Linux untuk melihat file yang terbuka dan proses menggunakannya. Mengetahui cara melihatnya dapat membantu Anda memahami cara kerja sistem dan bahkan mengambil tindakan yang diperlukan untuk proses tertentu.
Perintah Lsof
Untuk melihat file yang terbuka dan pengguna atau proses yang bertanggung jawab untuknya, kami menggunakan utilitas lsof. Secara default, lsof sudah diinstal sebelumnya di sebagian besar distribusi.
Namun, jika Anda belum menginstalnya, Anda dapat menggunakan pengelola paket untuk menginstalnya di sistem Anda.
Debian/Ubuntu
Di Debian, jalankan perintah:
sudo apt-get install lsof
Arch/Manjaro
Di Manjaro dan distro berbasis Arch lainnya, gunakan pacman dengan menjalankan perintah:
sudo pacman -S lsof
CentOS/REHL/Fedora
Untuk CentOS dan keluarga REHL, Anda dapat menggunakan dnf:
sudo dnf instal lsof
Gunakan Perintah lsof untuk Mencantumkan File Terbuka untuk Proses Linux
Seperti kebanyakan perintah Linux, utilitas lsof sangat mudah digunakan. Mulailah dengan mengetikkan perintah lsof:
sudo lsof
Setelah Anda menjalankan perintah di atas, lsof harus mengembalikan informasi tentang file yang terbuka di sistem.
PERINTAH PID TID TASKCMD USER FD TYPE DEVICE SIZE / OFF NODE NAME init 1 root cwd DIR 8,48 4096 2 / init 1 root rtd DIR 8,48 4096 2 / init 1 root txt REG 0,19 632048 281474976743906 / init init 1 root 0u CHR 1,3 0t0 15362 / dev / null init 1 root 1u CHR 1,3 0t0 15362 / dev / null init 1 root 2u CHR 1,3 0t0 15362 / dev / null init 1 root 3w CHR 1,11 0t0 15367 / dev / kmsg init 1 root 4u sock 0,8 0t0 22689 protokol: AF_VSOCK init 1 root 5r REG 0,4 0 4026532185 mnt init 1 root 6r REG 0,4 0 4026532201 mnt init 1 root 7r DIR 8,48 4096 240 / home / cap init 1 root 8u DIR 8,48 4096 2 / init 1 root 9u sock 0,8 0t0 21853 protokol: AF_VSOCK
Catatan: jika Anda memiliki hak sudo, jalankan perintah dengan sudo untuk menghindari kesalahan “izin ditolak” pada file tertentu.
Seperti yang ditunjukkan pada keluaran di atas, keluaran lsof memiliki kolom berikut:
Kolom |
Perwakilan |
Memerintah |
Menunjukkan nama proses menggunakan file target. |
PID |
Pengidentifikasi unik untuk proses menggunakan file. |
TID |
Kolom menunjukkan pengidentifikasi utas. |
TASKCMD |
Nama perintah tugas. |
PENGGUNA |
Nama pengguna atau UID pengguna yang menjalankan proses. |
FD |
Deskriptor file dari file dan mode. |
JENIS |
Node yang terkait dengan file target. |
PERANGKAT |
Nomor perangkat dipisahkan dengan koma. |
UKURAN/MATI |
Ukuran file dalam byte ukuran offset file |
NODE |
Nilai inode dari file lokal. Anda dapat menggunakan perintah stat untuk menampilkan informasi inode untuk file tersebut. |
NAMA |
Titik pemasangan file. |
Sekarang setelah Anda memahami isi dari lsof command printout, mari kita gunakan perintah untuk memfilter informasi tertentu.
Cara Memfilter untuk Proses Tertentu
Untuk memfilter hanya file tertentu yang dibuka oleh proses tertentu, kita dapat menggunakan nama proses atau nilai PID.
Misalnya untuk menampilkan file yang digunakan oleh proses firefox, kita dapat menggunakan perintah:
sudo lsof -c firefox
Perintah akan menampilkan semua file yang dibuka oleh proses firefox.
Untuk memfilter menurut ID proses, kita dapat menggunakan opsi -p dan meneruskan ID proses. Anda dapat menggunakan perintah top untuk mendapatkan ID proses dari proses target.
Misalnya untuk mendapatkan PID dari proses firefox, kita bisa menggunakan perintah:
sudo ps aux | grep firefox
Setelah Anda memiliki PID dari proses target, gunakan lsof untuk menampilkan file yang terbuka:
sudo lsof -p 2121
Perintah di atas akan mencetak file yang dibuka oleh proses dengan PID yang ditentukan.
Cara Memfilter untuk Pengguna Tertentu
Untuk melihat hanya file yang dibuka oleh pengguna tertentu, kita dapat menggunakan flag -u. Misalnya, untuk memfilter pengguna Debian, gunakan perintah:
sudo lsof -u debian
Cara Memfilter untuk File Tertentu
Misalkan Anda hanya ingin mengetahui proses dan pengguna yang membuka file tertentu. Untuk melakukan ini, berikan nama file ke lsof:
sudo lsof / bin / tidur
Di atas hanya akan memfilter file tertentu dan mengembalikan informasi terkait, termasuk pengguna, ID proses, dan lainnya.
Membungkus
Dalam tutorial sederhana ini, kita membahas cara menanyakan sistem untuk informasi tentang file terbuka menggunakan perintah lsof di Linux. Berikut adalah beberapa perintah tambahan bagi Anda untuk mencantumkan konten direktori di terminal.