Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Di Linux, banyak objek dianggap sebagai file, tidak kira sama ada objek itu sebenarnya fail, peranti, direktori, atau soket. Menyenaraikan fail adalah mudah, ada shell yang terpasang ls
untuk itu. Tetapi bagaimana jika pengguna ingin melihat fail mana yang sedang dibuka oleh proses pelayan web? Atau jika pengguna itu ingin mengetahui fail mana yang dibuka di direktori tertentu? Di situlah lsof
bermulanya permainan. Bayangkan lsof
sebagai ls
dengan penambahan "fail terbuka".
Harap maklum bahawa walaupun BSD mempunyai utiliti yang berbeza untuk pekerjaan ini fstat
, beberapa rasa Unix lain (misalnya, Solaris) juga ada lsof
. Pilihan dan bendera berbeza di platform lain, serta tampilan output, tetapi secara amnya pengetahuan dalam artikel ini juga harus berlaku untuk mereka.
Pertama, mari kita lihat format lsof
output dan bagaimana ia dibaca. Output biasa lsof
tanpa parameter akan menyerupai yang berikut. Ini telah dipotong untuk 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
Lajur ini bermaksud yang berikut:
init
.init
, hampir selalu root
.cwd
- Direktori kerja semasa (anda mungkin melihat kesamaan dengan pwd
perintah yang mencetak direktori kerja semasa).rtd
- Direktori akar proses.txt
- A text file
, ini boleh bermaksud fail konfigurasi yang berkaitan dengan proses atau "kod sumber" yang berkaitan dengan (atau milik) proses.mem
- Apa yang disebut "fail yang dipetakan memori", itu bermaksud segmen memori maya (baca: RAM) yang telah ditetapkan ke file.r
- Baca.w
- Tulis.u
- Baca dan tulis.REG
- Fail biasa.DIR
- Direktori.FIFO
- Pertama masuk, pertama keluar.Ini mungkin sedikit membebankan buat masa ini, tetapi jika anda bekerja dengan lsof
beberapa kali, ia akan cepat tenggelam ke dalam otak anda.
Seperti yang disebutkan di atas, outputnya lsof
telah dipersingkat di sini. Tanpa sebarang hujah atau saringan, lsof
menghasilkan ratusan baris output yang hanya akan membuat anda bingung.
Terdapat dua pendekatan asas untuk menyelesaikan masalah itu:
lsof
pilihan baris perintah untuk menyempitkan hasilnya.grep
.Walaupun pilihan terakhir mungkin terdengar lebih selesa kerana anda tidak perlu menghafal lsof
pilihan baris perintah, biasanya tidak fleksibel dan cekap, jadi kami akan tetap memilih yang pertama.
Mari kita bayangkan bahawa anda ingin membuka fail dengan editor teks kegemaran anda, dan bahawa editor teks memberitahu anda bahawa fail itu hanya dapat dibuka dalam mod baca sahaja kerana program lain sudah mengaksesnya. lsof
akan membantu anda mengetahui siapa pelakunya:
lsof /path/to/your/file
Ini akan menghasilkan output yang serupa dengan ini:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vim 2679 root 5w REG 254,1 121525 6035622 /root/lsof.txt
Nampaknya, anda terlupa untuk menutup dan sesi yang lebih lama! Masalah yang sangat serupa berlaku semasa anda mencuba melepaskan bahagian NFS dan umount
memberitahu anda bahawa ia tidak boleh berlaku kerana masih ada yang mengakses folder yang dipasang. Sekali lagi, lsof
dapat membantu anda mengenal pasti pelakunya:
lsof +D /path/to/your/directory/
Perhatikan garis miring, itu penting. Jika tidak, anda lsof
akan bermaksud fail biasa. Jangan keliru +
di depan bendera - lsof
mempunyai begitu banyak pilihan baris perintah yang diperlukan +
selain yang lebih umum -
. Hasilnya akan 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 bermaksud bahawa proses mocp
, dengan PID 5637
, milik pengguna music
telah membuka fail yang disebut RMS_GNU_SONG.ogg
. Namun, walaupun setelah menutup proses itu, masih ada masalah - kelantangan NFS tidak dapat dilepaskan.
lsof
mempunyai -c
bendera yang memaparkan fail yang membuka nama proses sewenang-wenangnya.
lsof -c mocp
Itu akan menghasilkan output seperti ini:
mocp 9383 music 4r REG 0,19 10147719 102367344 /home/Music/ANOTHER_RMS_GNU_SONG.ogg
Dalam contoh ini, ada contoh lain yang mocp
berjalan, yang menghalang anda melepaskan pemasangan bahagian. Setelah mematikan proses itu, anda ingin memastikan bahawa pengguna music
tidak membuka fail berpotensi bermasalah yang lain. lsof
mempunyai -u
bendera untuk menunjukkan fail yang dibuka oleh pengguna tertentu. Ingat, fail tidak selalu hanya fail biasa di cakera keras anda!
lsof -u music
Anda juga boleh melepasi beberapa pengguna, dipisahkan dengan koma:
lsof -u music,moremusic
Yang penting komen ke atas tingkah laku lalai lsof
: keputusan adalah OR berasaskan, yang bermakna bahawa anda akan melihat hasil fail dibuka oleh proses yang dimiliki oleh sama ada pengguna music
atau pengguna moremusic
. Sekiranya anda ingin melihat proses pencocokan hasil yang dimiliki oleh kedua pengguna, maka anda harus melewati bendera -a
:
lsof -au music, moremusic
Oleh kerana kedua-dua pengguna berada dalam kumpulan musicusers
, maka anda juga boleh menyenaraikan fail berdasarkan kumpulan:
lsof -g musicusers
Anda juga boleh menggabungkan bendera baris arahan:
lsof -u music,moremusic -c mocp
or
lsof -u ^music +D /home/Music
Di baris terakhir, kami menambah bendera khas lain - ^
, yang bermaksud NOT logik . Sekiranya output kosong setelah menjalankan perintah itu, kemungkinan penghapusan akan berjaya.
Dalam contoh sebelumnya, kebanyakan kami melihat fail biasa. Bagaimana dengan soket dan sambungan rangkaian?
Untuk menyenaraikan semua sambungan rangkaian semasa lsof
mempunyai -i
bendera:
lsof -i
Hasilnya kelihatan serupa dengan apa yang telah kita lihat setakat 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 perbezaan: bukannya nama fail atau direktori, lajur NAME
sekarang menunjukkan maklumat sambungan. Setiap sambungan terdiri daripada bahagian-bahagian berikut:
Seperti banyak alat lain, anda boleh memilih untuk tidak menyelesaikan nama dan port DNS ( -n
dan -P
, masing-masing). Bendera -i
mengambil parameter tambahan. Anda boleh menentukan sama ada atau tidak untuk menunjukkan tcp
, udp
atau icmp
sambungan atau pelabuhan tertentu:
lsof -i :25
or
lsof -i :smtp
Sekali lagi, parameter boleh digabungkan. Contoh berikut ...
lsof -i tcp:80
... hanya akan menunjukkan kepada anda sambungan TCP menggunakan port 80. Anda juga boleh menggabungkannya dengan pilihan yang sudah anda ketahui dari fail "klasik":
lsof -a -u httpd -i tcp
Ini akan menunjukkan kepada anda semua sambungan TCP yang dibuka oleh pengguna httpd
. Perhatikan -a
bendera, yang mengubah tingkah laku lalai lsof
(seperti yang disebutkan sebelumnya). Seperti kebanyakan alat baris perintah, anda boleh pergi jauh. Berikut ini hanya akan menunjukkan kepada anda sambungan TCP yang keadaannya "DITUBUHKAN":
lsof -i -s TCP:ESTABLISHED
Pada ketika ini, anda harus mempunyai pemahaman asas mengenai cara lsof
kerjanya, bersama dengan beberapa kes penggunaan biasa. Untuk membaca lebih lanjut, lihat halaman utama lsof
sistem anda.
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.
Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.
Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.
Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.
CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?
Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.
Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!
Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.
Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut