Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1
Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1
Di Linux, banyak objek dianggap file, terlepas dari apakah objek itu sebenarnya file, perangkat, direktori, atau soket. Mendaftarkan file mudah, ada shell bawaan ls
untuk itu. Tetapi bagaimana jika pengguna ingin melihat file mana yang saat ini dibuka oleh proses server web? Atau jika pengguna itu ingin mengetahui file mana yang dibuka di direktori tertentu? Di situlah lsof
ikut bermain. Bayangkan lsof
sebagai ls
dengan penambahan "file terbuka".
Harap dicatat bahwa walaupun BSD memiliki utilitas berbeda untuk pekerjaan ini fstat
, beberapa rasa Unix lainnya (Solaris, misalnya) juga memiliki lsof
. Opsi dan flag berbeda pada platform lain, serta tampilan output, tetapi umumnya pengetahuan dalam artikel ini juga berlaku untuk mereka.
Pertama, mari kita lihat format lsof
output dan bagaimana itu dibaca. Output biasa lsof
tanpa parameter apa pun akan menyerupai berikut ini. Ini telah dipangkas agar mudah dibaca.
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 254,1 4096 2 /
init 1 root rtd DIR 254,1 4096 2 /
init 1 root txt REG 254,1 36992 7077928 /sbin/init
init 1 root mem REG 254,1 14768 7340043 /lib/x86_64-linux-gnu/libdl-2.13.so
init 1 root mem REG 254,1 1603600 7340040 /lib/x86_64-linux-gnu/libc-2.13.so
init 1 root mem REG 254,1 126232 7340078 /lib/x86_64-linux-gnu/libselinux.so.1
init 1 root mem REG 254,1 261184 7340083 /lib/x86_64-linux-gnu/libsepol.so.1
init 1 root mem REG 254,1 136936 7340037 /lib/x86_64-linux-gnu/ld-2.13.so
init 1 root 10u FIFO 0,14 0t0 4781 /run/initctl
Kolom ini berarti yang berikut:
init
.init
, hampir selalu root
.cwd
- Direktori kerja saat ini (Anda mungkin melihat kesamaan dengan pwd
perintah yang mencetak direktori kerja saat ini).rtd
- Direktori root dari suatu proses.txt
- A text file
, ini bisa berarti file konfigurasi yang terkait dengan proses atau "kode sumber" yang terkait dengan (atau milik) proses.mem
- Apa yang disebut "file yang dipetakan memori", itu berarti segmen memori virtual (baca: RAM) yang telah ditetapkan ke file.r
- Baca.w
- Menulis.u
- Baca dan tulis.REG
- File biasa.DIR
- Direktori.FIFO
- Pertama masuk pertama keluar.Ini mungkin sedikit berlebihan untuk saat ini, tetapi jika Anda bekerja dengan lsof
beberapa kali, itu akan dengan cepat meresap ke dalam otak Anda.
Seperti disebutkan di atas, output dari lsof
telah dipersingkat di sini. Tanpa argumen atau filter, lsof
menghasilkan ratusan garis output yang hanya akan membuat Anda bingung.
Ada dua pendekatan dasar untuk mengatasi masalah itu:
lsof
opsi baris perintah untuk mempersempit hasilnya.grep
,.Meskipun opsi yang terakhir mungkin terdengar lebih nyaman karena Anda tidak perlu menghafal lsof
opsi baris perintah, umumnya opsi ini tidak fleksibel dan efisien, jadi kami akan tetap menggunakan yang pertama.
Mari kita bayangkan bahwa Anda ingin membuka file dengan editor teks favorit Anda, dan bahwa editor teks memberi tahu Anda bahwa itu hanya dapat dibuka dalam mode read-only karena program lain sudah mengaksesnya. lsof
akan membantu Anda mengetahui siapa pelakunya:
lsof /path/to/your/file
Ini akan menghasilkan output yang mirip dengan ini:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vim 2679 root 5w REG 254,1 121525 6035622 /root/lsof.txt
Rupanya, Anda lupa untuk menutup dan sesi yang lebih lama! Masalah yang sangat mirip terjadi ketika Anda mencoba meng-unmount share NFS dan umount
mengatakan itu tidak bisa karena ada sesuatu yang masih mengakses folder yang di-mount. Sekali lagi, lsof
dapat membantu Anda mengidentifikasi pelakunya:
lsof +D /path/to/your/directory/
Perhatikan garis miring, itu penting. Kalau tidak lsof
akan menganggap Anda berarti file biasa. Jangan bingung dengan +
di depan bendera - lsof
memiliki begitu banyak opsi baris perintah yang diperlukan +
selain yang lebih umum -
. Outputnya akan terlihat seperti ini:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mocp 5637 music 4r REG 0,19 10147719 102367344 /home/Music/RMS_GNU_SONG.ogg
Itu berarti bahwa proses mocp
, dengan PID 5637
, milik pengguna music
telah membuka file bernama RMS_GNU_SONG.ogg
. Namun, bahkan setelah menutup proses itu, masih ada masalah - volume NFS tidak dapat di-unmount.
lsof
memiliki -c
bendera yang menampilkan file yang membuka nama proses sewenang-wenang.
lsof -c mocp
Itu akan menghasilkan output yang terlihat seperti ini:
mocp 9383 music 4r REG 0,19 10147719 102367344 /home/Music/ANOTHER_RMS_GNU_SONG.ogg
Dalam contoh ini, ada contoh lain mocp
menjalankan, mencegah Anda melepas pemasangan bagian. Setelah mematikan proses itu, Anda ingin memastikan bahwa pengguna music
tidak memiliki file yang berpotensi bermasalah terbuka. lsof
memiliki -u
bendera untuk menampilkan file yang dibuka oleh pengguna tertentu. Ingat, file tidak selalu hanya file biasa di hard disk Anda!
lsof -u music
Anda juga dapat melewati beberapa pengguna, dipisahkan dengan koma:
lsof -u music,moremusic
Sebuah penting catatan pada perilaku default lsof
: hasilnya OR berbasis, yang berarti bahwa Anda akan melihat hasil file yang dibuka oleh proses yang dimiliki baik oleh pengguna music
, atau pengguna moremusic
. Jika Anda ingin melihat hasil proses pencocokan yang dimiliki oleh kedua pengguna, maka Anda harus melewati tanda -a
:
lsof -au music, moremusic
Karena kedua pengguna berada di grup musicusers
, maka Anda juga dapat membuat daftar file berdasarkan grup:
lsof -g musicusers
Anda juga dapat menggabungkan flag baris perintah:
lsof -u music,moremusic -c mocp
or
lsof -u ^music +D /home/Music
Di baris terakhir, kami menambahkan bendera khusus lain - ^
, yang merupakan singkatan dari NOT logis . Jika output kosong setelah menjalankan perintah itu, maka unmount kemungkinan besar akan berhasil.
Dalam contoh-contoh sebelumnya, kami kebanyakan melihat file biasa. Bagaimana dengan soket dan koneksi jaringan?
Untuk daftar semua koneksi jaringan saat ini lsof
memiliki -i
bendera:
lsof -i
Outputnya terlihat mirip dengan apa yang telah kita lihat sejauh ini ...
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
owncloud 3509 myuser 25u IPv4 44946 0t0 TCP strix.local:34217->myserver.vultr.com:https (ESTABLISHED)
firefox 3612 myuser 82u IPv4 49663 0t0 TCP strix.local:43897->we-in-f100.1e100.net:https (ESTABLISHED)
ssh 3784 myuser 3u IPv4 10437 0t0 TCP strix.local:51416->someserver.in:ssh (ESTABLISHED)
wget 4140 myuser 3w IPv4 45586 0t0 TCP strix.local:54460->media.ccc.de:http (CLOSE_WAIT)
... kecuali satu perbedaan: alih-alih nama file atau direktori, kolom NAME
sekarang menunjukkan informasi koneksi. Setiap koneksi terdiri dari bagian-bagian berikut:
Seperti banyak alat lainnya, Anda dapat memilih untuk tidak keluar dari penyelesaian nama dan port DNS ( -n
dan -P
, masing-masing). Bendera -i
mengambil parameter tambahan. Anda dapat menentukan apakah akan ditampilkan atau tidak tcp
, udp
atau icmp
koneksi atau port tertentu:
lsof -i :25
or
lsof -i :smtp
Sekali lagi, parameter dapat digabungkan. Contoh berikut ...
lsof -i tcp:80
... hanya akan menunjukkan kepada Anda koneksi TCP menggunakan port 80. Anda juga dapat menggabungkannya dengan opsi yang sudah Anda ketahui dari file "klasik":
lsof -a -u httpd -i tcp
Ini akan menunjukkan kepada Anda semua koneksi TCP yang dibuka oleh pengguna httpd
. Perhatikan -a
flag, yang mengubah perilaku default lsof
(seperti yang disebutkan sebelumnya). Seperti kebanyakan alat baris perintah, Anda bisa sangat dalam. Berikut ini hanya akan menunjukkan kepada Anda koneksi TCP yang kondisinya "ESTABLISHED":
lsof -i -s TCP:ESTABLISHED
Pada titik ini, Anda harus memiliki pemahaman dasar tentang cara lsof
kerjanya, bersama dengan beberapa kasus penggunaan umum. Untuk bacaan lebih lanjut, lihat halaman manual lsof
pada sistem Anda.
Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1
Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.
Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.
Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.
Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.
CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?
Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.
Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!
Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.
Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut