Lsofa Giriş

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 lsvardı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 lsofdevreye giriyor. "Açık dosyalar" ekleyerek lsofbir 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 . lsofHerhangi 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:

  • COMMAND - Açık bir dosyanın ait olduğu süreç, bu örnekte her şey ilgilidir init.
  • PID - Adı geçen işlemin işlem kimlik numarası.
  • USER - İşlemin altında çalıştığı kullanıcı. Çünkü initneredeyse her zaman root.
  • FD - Dosyanın dosya tanıtıcısı, en yaygın olanı:
    • cwd- Geçerli çalışma dizini (geçerli çalışma dizinini pwdyazdı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.
    • Bir sayı - sayı, gerçek dosya tanımlayıcısını temsil eder; sayıdan sonraki karakter, dosyanın açıldığı moddur:
    • r - Oku.
    • w - Yazmak.
    • u - Oku ve yaz.
  • TYPE - Dosyanın gerçek türünü belirtir; en yaygın olanları şunlardır:
    • REG - Normal bir dosya.
    • DIR - Bir dizin.
    • FIFO - İlk giren ilk çıkar.
  • CİHAZ - Dosyayı tutan cihazın büyük ve küçük sayısı.
  • SIZE - Dosyanın bayt cinsinden boyutu.
  • NODE - Dosyanın inode numarası.
  • İSİM - Dosyanın adı.

Şimdilik biraz bunaltıcı olabilir, ancak lsofbirkaç kez çalışırsanız , beyninize hızla batar.

Yukarıda belirtildiği gibi, çıktısı lsofburada 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:

  • lsofSonuçları daraltmak için komut satırı seçeneklerinden birini veya daha fazlasını kullanın .
  • Çıkışı, örneğin geçirin grep.

lsofKomut 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. lsoffailin 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 umountbunun yapamayacağını söylediğinizde, bağlı klasöre hala bir şey eriştiği için çok benzer bir sorun ortaya çıkar . Yine, lsofsuçluyu tanımlamanıza yardımcı olabilir:

lsof +D /path/to/your/directory/

Sondaki eğik çizgiye dikkat edin, bu önemli. Aksi takdirde lsofnormal bir dosya demek istediğinizi varsayar. +Bayrağın önü tarafından karıştırılmamalıdır - daha yaygın olanlara ek olarak lsofihtiyaç 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 5637kullanıcıya ait işlemin musicadlı 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-crasgele 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, mocppaylaşı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 musicpotansiyel olarak sorunlu olabilecek başka dosyalarının olmadığından emin olmak istersiniz . lsof, -ubelirli 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 lsofsonuç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ı musicveya 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 lsofiçin -ibayrağı 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 NAMEartık dosya adları veya dizinler yerine bağlantı bilgilerini gösterir. Her bağlantı aşağıdaki bölümlerden oluşur:

  • Protokol.
  • Yerel ana bilgisayar adı.
  • Bağlantının kaynak bağlantı noktası.
  • Hedef DNS adı.
  • Hedef bağlantı noktası.
  • Bağlantının durumu.

Diğer birçok araçta olduğu gibi, DNS adlarını ve bağlantı noktalarını ( -nve -Psırasıyla) çözümlemeyi devre dışı bırakabilirsiniz . Bayrak -iek parametreler alır. Gösterecek olsun veya olmasın belirtebilir tcp, udpveya icmpbağ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 -avarsayı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, lsofbazı 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 lsofiçin sisteminizdeki kılavuz sayfasına bakınız .



Leave a Comment

CentOS 7de Tavşan Kümesini Kümeleme

CentOS 7de Tavşan Kümesini Kümeleme

RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir

Debianda NFS Paylaşımı Ayarla

Debianda NFS Paylaşımı Ayarla

NFS, bilgisayarların bilgisayar ağı üzerindeki dosyalara erişmesine izin veren ağ tabanlı bir dosya sistemidir. Bu kılavuz, klasörleri NF üzerinden nasıl açığa çıkarabileceğinizi açıklar

GitBucket Ubuntu 16.04 Kurulumu

GitBucket Ubuntu 16.04 Kurulumu

Bu kılavuz, Ubuntu 16.04 çalıştıran bir Vultr örneği için GitBucketin temel kurulumunu ve kurulumunu kapsar ve komutları şu şekilde yürüttüğünüzü varsayar:

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Directus 6.4 CMS, geliştirici sağlayan güçlü ve esnek, ücretsiz ve açık kaynaklı Başsız İçerik Yönetim Sistemidir (CMS)

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Mattermost, Slack SAAS mesajlaşma servisine açık kaynaklı, kendi kendine barındırılan bir alternatiftir. Başka bir deyişle, Mattermost ile,

Linuxta TeamTalk Sunucusu Kurma

Linuxta TeamTalk Sunucusu Kurma

TeamTalk, kullanıcıların yüksek kaliteli sesli / görüntülü konuşmalara, metin sohbetine, dosya aktarımına ve ekranları paylaşmasına olanak tanıyan bir konferans sistemidir. Ben

Pagekit CMSyi CentOS 7ye Yükleme

Pagekit CMSyi CentOS 7ye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Vultr, yeni bir örnek oluşturduktan sonra SSH anahtarlarını önceden yüklemenizi sağlayan bir özellik sağlar. Bu, sunucu kök kullanıcısına erişmenizi sağlar, ancak

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Farklı Bir Sistem mi Kullanıyorsunuz? Diaspora gizliliğe duyarlı, açık kaynaklı bir sosyal ağdır. Bu derste, bir Diaspora posının nasıl kurulacağını ve yapılandırılacağını öğreneceksiniz

Debian 9 Üzerinde Yakıt CMS Kurulumu

Debian 9 Üzerinde Yakıt CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Fuel CMS, CodeIgniter tabanlı bir içerik yönetim sistemidir. Kaynak kodu GitHubda barındırılmaktadır. Bu kılavuz size

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların önüne # ve bir

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Snipe-IT, BT varlık yönetimi için ücretsiz ve açık kaynaklı bir web uygulamasıdır. Laravel 5.2 çerçevesi ve kullanımı üzerine yazılmıştır.

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

Çok Güvenli FTP arka plan programı, ya da sadece vsFTPd, özelleştirme yeteneği olan hafif bir yazılım parçasıdır. Bu derste bir müttefikimiz olacak

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Ranger, VI anahtar bağlamaları olan komut satırı tabanlı bir dosya yöneticisidir. Dizin hiyerarşisi manzaralı minimalist ve hoş bir curses arayüzü sağlar

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Farklı Bir Sistem mi Kullanıyorsunuz? Brotli, GZIPden daha iyi bir sıkıştırma oranına sahip yeni bir sıkıştırma yöntemidir. Kaynak kodu bu Githuda herkese açık olarak barındırılıyor

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

Belirli durumlarda, Sistem Yöneticisinin bir kullanıcı hesabı oluşturması ve yalnızca kendi dosyalarını sFTP yoluyla yönetmek için erişimini kısıtlaması gerekebilir, ancak b

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Omeka Classic 2.4 CMS, digita paylaşımı için ücretsiz ve açık kaynaklı bir dijital yayıncılık platformu ve İçerik Yönetim Sistemidir (CMS)

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların başına # işareti gelir. th

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

SSH üzerinden kök girişine izin vermek, teknoloji endüstrisinde genellikle zayıf bir güvenlik uygulaması olarak kabul edilir. Bunun yerine, hassas yönetim gerçekleştirebilirsiniz

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? RabbitMQ, Erlang programlama dilinde yazılmış, yaygın olarak kullanılan açık kaynaklı bir mesaj aracısıdır. Mesaj odaklı bir ara katman yazılımı olarak

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

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

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

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.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

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: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?