26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
Linux altında, nesnenin aslında bir dosya, aygıt, dizin veya yuva olup olmadığına bakılmaksızın, birçok nesne bir dosya olarak kabul edilir. Bir dosyayı listelemek kolaydır, bunun için yerleşik bir kabuk ls
vardır. Ancak, bir kullanıcı şu anda hangi dosyaların web sunucusu işlemi tarafından açıldığını görmek isterse? Veya bu kullanıcı belirli bir dizinde hangi dosyaların açıldığını öğrenmek isterse? İşte burada lsof
devreye giriyor. "Açık dosyalar" ekleyerek lsof
bir düşünün ls
.
BSD'lerin bu iş için farklı bir faydası olsa da fstat
, Unix'in (örneğin Solaris) diğer birkaç çeşidine de sahip olduğunu unutmayın lsof
. Seçenekler ve bayraklar diğer platformlarda ve çıktının görünümünde farklıdır, ancak genellikle bu makaledeki bilgiler onlar için de geçerli olmalıdır.
İlk olarak, lsof
çıktı biçimine ve nasıl okunacağına bakalım . lsof
Herhangi bir parametre olmadan olağan çıktısı aşağıdakine benzer. Bu, okunabilirlik için kırpılmıştır.
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
Bu sütunlar şu anlama gelir:
init
.init
neredeyse her zaman root
.cwd
- Geçerli çalışma dizini (geçerli çalışma dizinini pwd
yazdıran komutla benzerlik görebilirsiniz ).rtd
- Bir işlemin kök dizini.txt
- A text file
, bu ya işlemle ilgili bir yapılandırma dosyası ya da işlemle ilgili (ya da ona ait) "kaynak kodu" anlamına gelebilir.mem
- "Bellek eşlemeli dosya" adı verilen, bir dosyaya atanmış bir sanal bellek (okuma: RAM) segmenti anlamına gelir.r
- Oku.w
- Yazmak.u
- Oku ve yaz.REG
- Normal bir dosya.DIR
- Bir dizin.FIFO
- İlk giren ilk çıkar.Şimdilik biraz bunaltıcı olabilir, ancak lsof
birkaç kez çalışırsanız , beyninize hızla batar.
Yukarıda belirtildiği gibi, çıktısı lsof
burada kısaltılmıştır. Herhangi bir argüman veya filtre olmadan lsof
, sadece sizi karışık bırakacak yüzlerce satır üretir.
Bu sorunu çözmek için iki temel yaklaşım vardır:
lsof
Sonuçları daraltmak için komut satırı seçeneklerinden birini veya daha fazlasını kullanın .grep
.lsof
Komut satırı seçeneklerini ezberlemeniz gerekmediğinden, ikinci seçenek daha rahat gelse de , genellikle esnek ve verimli değildir, bu yüzden ilkine sadık kalacağız.
En sevdiğiniz metin düzenleyicisiyle bir dosya açmak istediğinizi ve metin düzenleyicinin, başka bir program zaten eriştiği için yalnızca salt okunur modda açılabileceğini söylediğini düşünelim. lsof
failin kim olduğunu bulmanıza yardımcı olacaktır:
lsof /path/to/your/file
Bu şuna benzer bir çıktı üretir:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vim 2679 root 5w REG 254,1 121525 6035622 /root/lsof.txt
Görünüşe göre, yakın ve eski oturumu unuttun! NFS paylaşımının bağlantısını kesmeye çalıştığınızda ve umount
bunun yapamayacağını söylediğinizde, bağlı klasöre hala bir şey eriştiği için çok benzer bir sorun ortaya çıkar . Yine, lsof
suçluyu tanımlamanıza yardımcı olabilir:
lsof +D /path/to/your/directory/
Sondaki eğik çizgiye dikkat edin, bu önemli. Aksi takdirde lsof
normal bir dosya demek istediğinizi varsayar. +
Bayrağın önü tarafından karıştırılmamalıdır - daha yaygın olanlara ek olarak lsof
ihtiyaç duyduğu birçok komut satırı seçeneği vardır . Çıktı şöyle görünecektir:+
-
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
Bu mocp
, PID ile 5637
kullanıcıya ait işlemin music
adlı bir dosyayı açtığı anlamına gelir RMS_GNU_SONG.ogg
. Ancak, bu işlemi kapattıktan sonra bile, hala bir sorun vardır - NFS biriminin bağlantısı kesilemez.
lsof
-c
rasgele bir işlem adı açılan dosyaları görüntüleyen bir bayrak var.
lsof -c mocp
Bu şöyle bir çıktı üretir:
mocp 9383 music 4r REG 0,19 10147719 102367344 /home/Music/ANOTHER_RMS_GNU_SONG.ogg
Bu örnekte, mocp
paylaşımın bağlantısını kesmenizi engelleyen başka bir çalıştırma örneği vardır . Bu işlemi kapattıktan sonra, kullanıcının music
potansiyel olarak sorunlu olabilecek başka dosyalarının olmadığından emin olmak istersiniz . lsof
, -u
belirli bir kullanıcı tarafından açılan dosyaları göstermek için bir işaret içerir. Unutmayın, bir dosya her zaman sabit diskinizdeki normal bir dosya değildir!
lsof -u music
Virgülle ayırarak birkaç kullanıcıyı da iletebilirsiniz:
lsof -u music,moremusic
Bir önemli varsayılan davranışı üzerindeki notu lsof
sonuçları şunlardır: YA kullanıcıya ya aittir süreçler tarafından açılan dosya sonuçlarını göreceği hangi araçlar, tabanlı music
veya kullanıcı moremusic
. Her iki kullanıcının da sahip olduğu işlemlerle eşleşen sonuçları görmek istiyorsanız, bayrağı iletmeniz gerekir -a
:
lsof -au music, moremusic
Her iki kullanıcı da grupta olduğu için musicusers
, dosyaları gruba göre de listeleyebilirsiniz:
lsof -g musicusers
Komut satırı bayraklarını da birleştirebilirsiniz:
lsof -u music,moremusic -c mocp
or
lsof -u ^music +D /home/Music
Son satırda, ^
mantıklı bir NOT anlamına gelen başka bir özel bayrak ekledik . Bu komutu çalıştırdıktan sonra çıktı boşsa, sökme işlemi büyük olasılıkla başarılı olacaktır.
Önceki örneklerde, çoğunlukla normal dosyalara baktık. Soketler ve ağ bağlantıları nasıl olur?
Geçerli tüm ağ bağlantılarını listelemek lsof
için -i
bayrağı vardır:
lsof -i
Çıktı şimdiye kadar gördüğümüze benziyor ...
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)
... bir fark dışında: sütun NAME
artık dosya adları veya dizinler yerine bağlantı bilgilerini gösterir. Her bağlantı aşağıdaki bölümlerden oluşur:
Diğer birçok araçta olduğu gibi, DNS adlarını ve bağlantı noktalarını ( -n
ve -P
sırasıyla) çözümlemeyi devre dışı bırakabilirsiniz . Bayrak -i
ek parametreler alır. Gösterecek olsun veya olmasın belirtebilir tcp
, udp
veya icmp
bağlantıları veya belirli portları:
lsof -i :25
or
lsof -i :smtp
Yine parametreler birleştirilebilir. Aşağıdaki örnek ...
lsof -i tcp:80
... yalnızca 80 numaralı bağlantı noktasını kullanarak TCP bağlantılarını gösterecektir. Bağlantıyı "klasik" dosyalardan zaten bildiğiniz seçeneklerle de birleştirebilirsiniz:
lsof -a -u httpd -i tcp
Bu size kullanıcı tarafından açılan tüm TCP bağlantılarını gösterir httpd
. Not -a
varsayılan davranışını değiştiren bayrak, lsof
(daha önce belirtildiği gibi). Çoğu komut satırı aracında olduğu gibi, son derece derine inebilirsiniz. Aşağıda yalnızca durumu "KURULDU" olan TCP bağlantıları gösterilecektir:
lsof -i -s TCP:ESTABLISHED
Bu noktada, lsof
bazı yaygın kullanım durumlarıyla birlikte nasıl çalıştığı hakkında temel bir anlayışa sahip olmalısınız . Daha fazla okuma lsof
için sisteminizdeki kılavuz sayfasına bakınız .
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.
Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.
Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.
Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.
CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?
Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.
Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!
Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.
Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun