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 lsuntuk 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 lsofbermulanya permainan. Bayangkan lsofsebagai lsdengan 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 lsofoutput dan bagaimana ia dibaca. Output biasa lsoftanpa 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 pwdperintah 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 lsofbeberapa kali, ia akan cepat tenggelam ke dalam otak anda.
Seperti yang disebutkan di atas, outputnya lsoftelah dipersingkat di sini. Tanpa sebarang hujah atau saringan, lsofmenghasilkan ratusan baris output yang hanya akan membuat anda bingung.
Terdapat dua pendekatan asas untuk menyelesaikan masalah itu:
lsofpilihan baris perintah untuk menyempitkan hasilnya.grep.Walaupun pilihan terakhir mungkin terdengar lebih selesa kerana anda tidak perlu menghafal lsofpilihan 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. lsofakan 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 umountmemberitahu anda bahawa ia tidak boleh berlaku kerana masih ada yang mengakses folder yang dipasang. Sekali lagi, lsofdapat membantu anda mengenal pasti pelakunya:
lsof +D /path/to/your/directory/
Perhatikan garis miring, itu penting. Jika tidak, anda lsofakan bermaksud fail biasa. Jangan keliru +di depan bendera - lsofmempunyai 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 musictelah membuka fail yang disebut RMS_GNU_SONG.ogg. Namun, walaupun setelah menutup proses itu, masih ada masalah - kelantangan NFS tidak dapat dilepaskan.
lsofmempunyai -cbendera 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 mocpberjalan, yang menghalang anda melepaskan pemasangan bahagian. Setelah mematikan proses itu, anda ingin memastikan bahawa pengguna musictidak membuka fail berpotensi bermasalah yang lain. lsofmempunyai -ubendera 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 musicatau 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 lsofmempunyai -ibendera:
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 NAMEsekarang menunjukkan maklumat sambungan. Setiap sambungan terdiri daripada bahagian-bahagian berikut:
Seperti banyak alat lain, anda boleh memilih untuk tidak menyelesaikan nama dan port DNS ( -ndan -P, masing-masing). Bendera -imengambil parameter tambahan. Anda boleh menentukan sama ada atau tidak untuk menunjukkan tcp, udpatau icmpsambungan 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 -abendera, 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 lsofkerjanya, bersama dengan beberapa kes penggunaan biasa. Untuk membaca lebih lanjut, lihat halaman utama lsofsistem anda.
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.
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 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.
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.
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?
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