Hyrje në Lsof

Në Linux, shumë objekte konsiderohen skedar, pavarësisht nëse objekti është në të vërtetë një skedar, pajisje, drejtori ose fole. Renditja e një skedari është e lehtë, ka një guaskë të integruar lspër këtë. Por, çka nëse një përdorues do të donte të shihte se cilët skedarë hapen aktualisht nga procesi i serverit në internet? Apo nëse ai përdorues donte të zbulonte se cilët skedarë hapen në një drejtori të caktuar? Këtu lsofhyn në lojë. Imagjinoni lsofsi një lsme shtimin e "skedarëve të hapur".

Ju lutemi vini re se ndërsa BSD-të kanë një dobi të ndryshme për këtë punë fstat, disa shije të tjera të Unix (për shembull Solaris) kanë gjithashtu lsof. Opsionet dhe flamujt janë të ndryshëm në platformat e tjera, si dhe pamja e daljes, por përgjithësisht njohuritë në këtë artikull duhet të jenë të zbatueshme edhe për to.

Së pari, le të hedhim një vështrim në formatin e lsofprodhimit dhe mënyrën se si duhet lexuar. Prodhimi i zakonshëm i lsofpa asnjë parametër do të ngjante si më poshtë. Kjo është shkurtuar për lexueshmëri.

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

Këto kolona nënkuptojnë sa vijon:

  • KOMANDA - Procesi të cilit i përket një skedar i hapur, në këtë shembull gjithçka lidhet me init.
  • PID - Numri i identifikimit të procesit të procesit në fjalë.
  • USER - Përdoruesi nën të cilin funksionon procesi. Sepse init, është pothuajse gjithmonë root.
  • FD - Përshkruesi i skedarit të skedarit, më i zakonshmi është:
    • cwd- Drejtoria aktuale e punës (mund të vëreni ngjashmëri me pwdkomandën që printon direktorinë aktuale të punës).
    • rtd - Drejtoria kryesore e një procesi.
    • txt- A text file, kjo mund të nënkuptojë ose një skedar konfigurimi që lidhet me procesin ose "kodin burimor" të lidhur me (ose që i përket) procesit.
    • mem - Një i ashtuquajtur "skedar i hartuar me memorie", që nënkupton një segment të memories virtuale (lexo: RAM) që i është caktuar një skedari.
    • Një numër - numri përfaqëson përshkruesin aktual të skedarit, karakteri pas numrit është mënyra në të cilën hapet skedari:
    • r - Lexo.
    • w - Shkruaj.
    • u - Lexoni dhe shkruani.
  • LLOJI - Përcakton llojin aktual të skedarit, më të zakonshmet janë:
    • REG - Një skedar i rregullt.
    • DIR - Një drejtori.
    • FIFO - I pari brenda, i pari jashtë.
  • DEVICE - Numri kryesor dhe i vogël i pajisjes që mban skedarin.
  • SIZE - Madhësia e skedarit, në bajt.
  • NODE - Numri inode i skedarit.
  • EMRI - Emri i skedarit.

Kjo mund të jetë pak dërrmuese për momentin, por nëse punoni lsofdisa herë me të, do të zhytet shpejt në trurin tuaj.

Siç u përmend më lart, prodhimi i lsofështë shkurtuar këtu. Pa asnjë argument apo filtër, lsofprodhon qindra rreshta të prodhimit të cilat vetëm do t'ju lënë të hutuar.

Ekzistojnë dy qasje themelore për të zgjidhur këtë problem:

  • Përdorni një ose më shumë nga lsofopsionet e linjës së komandës për të ngushtuar rezultatet.
  • Tuboni daljen përmes, për shembull, grep.

Ndërsa opsioni i fundit mund të duket më i rehatshëm pasi nuk do t'ju duhet të mësoni përmendësh lsofopsionet e linjës së komandës, në përgjithësi nuk është aq fleksibël dhe efikas, kështu që ne do t'i përmbahemi të parës.

Le të imagjinojmë se dëshironi të hapni një skedar me redaktuesin tuaj të preferuar të tekstit dhe se redaktori i tekstit ju thotë se ai mund të hapet vetëm në modalitetin vetëm për lexim, sepse një program tjetër po e qaset tashmë. lsofdo t'ju ndihmojë të zbuloni se kush është autori:

lsof /path/to/your/file

Kjo do të prodhojë një dalje të ngjashme me këtë:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
vim 2679 root    5w   REG  254,1   121525 6035622 /root/lsof.txt

Me sa duket, keni harruar të mbyllni dhe seancën më të vjetër! Një problem shumë i ngjashëm ndodh kur përpiqeni të çmontoni një ndarje NFS dhe umountju thotë se nuk mundet sepse diçka po i qaset ende dosjes së montuar. Përsëri, lsofmund t'ju ndihmojë në identifikimin e fajtorit:

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

Vini re prerjen pasuese, kjo është e rëndësishme. Përndryshe lsofdo të supozohet se keni parasysh një skedar të rregullt. Mos u hutoni nga pjesa e +përparme e flamurit - lsofka kaq shumë opsione të linjës së komandës që i duhen +përveç atyre më të zakonshmet -. Prodhimi do të duket si ky:

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

Kjo do të thotë se procesi mocp, me PID 5637, që i përket përdoruesit musicka hapur një skedar të quajtur RMS_GNU_SONG.ogg. Megjithatë, edhe pas mbylljes së këtij procesi, ka ende një problem - vëllimi NFS nuk mund të çmontohet.

lsofka një -cflamur që shfaq skedarët e hapur një emër procesi arbitrar.

lsof -c mocp

Kjo do të prodhonte një rezultat që duket si ky:

mocp    9383  music    4r   REG   0,19 10147719 102367344 /home/Music/ANOTHER_RMS_GNU_SONG.ogg

Në këtë shembull, ekziston një shembull tjetër i mocpekzekutimit, që ju pengon të çmontoni ndarjen. Pas mbylljes së këtij procesi, dëshironi të siguroheni që përdoruesi të musicmos ketë skedarë të tjerë potencialisht problematikë të hapur. lsofka një -uflamur për shfaqjen e skedarëve të hapur nga një përdorues specifik. Mbani mend, një skedar nuk është gjithmonë vetëm një skedar i rregullt në hard diskun tuaj!

lsof -u music

Ju gjithashtu mund të kaloni disa përdorues, të ndarë me presje:

lsof -u music,moremusic

Një shënim i rëndësishëm për sjelljen e paracaktuar të lsof: rezultatet janë të bazuara në OSE , që do të thotë se do të shihni rezultatet e skedarëve të hapura nga proceset që janë në pronësi ose të përdoruesit musicose të përdoruesit moremusic. Nëse dëshironi të shihni procese që përputhen me rezultate që janë në pronësi të të dy përdoruesve, atëherë duhet të kaloni flamurin -a:

lsof -au music, moremusic

Meqenëse të dy përdoruesit janë në grup musicusers, atëherë mund të listoni gjithashtu skedarë bazuar në grup:

lsof -g musicusers

Ju gjithashtu mund të kombinoni flamujt e linjës së komandës:

lsof -u music,moremusic -c mocp

or

lsof -u ^music +D /home/Music

Në rreshtin e fundit, ne shtuam një tjetër flamur të veçantë - ^, i cili nënkupton një NOT logjik . Nëse dalja është bosh pas ekzekutimit të asaj komande, atëherë çmontimi ka shumë të ngjarë të jetë i suksesshëm.

Në shembujt e mëparshëm, ne shikuam kryesisht skedarët e rregullt. Po në lidhje me prizat dhe lidhjet e rrjetit?

Për të renditur të gjitha lidhjet aktuale të rrjetit lsofka -iflamurin:

lsof -i

Rezultati duket i ngjashëm me atë që kemi parë deri tani...

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)

... përveç një ndryshimi: në vend të emrave të skedarëve ose drejtorive, kolona NAMEtani tregon informacionin e lidhjes. Çdo lidhje përbëhet nga pjesët e mëposhtme:

  • Protokolli.
  • Emri lokal i hostit.
  • Porta e burimit të lidhjes.
  • Emri i DNS-së së destinacionit.
  • Porti i destinacionit.
  • Statusi i lidhjes.

Ashtu si me shumë mjete të tjera, ju mund të tërhiqeni nga zgjidhja e emrave dhe porteve DNS ( -ndhe -P, përkatësisht). Flamuri -imerr parametra shtesë. Mund të specifikoni nëse do të shfaqen ose jo tcp, udpose icmplidhjet ose porte të caktuara:

lsof -i :25
or
lsof -i :smtp

Përsëri, parametrat mund të kombinohen. Shembulli i mëposhtëm...

lsof -i tcp:80

... do t'ju tregojë vetëm lidhjet TCP duke përdorur portën 80. Mund ta kombinoni gjithashtu me opsionet që tashmë i njihni nga skedarët "klasikë":

lsof -a -u httpd -i tcp

Kjo do t'ju tregojë të gjitha lidhjet TCP të hapura nga përdoruesi httpd. Vini re -aflamurin, i cili ndryshon sjelljen e paracaktuar të lsof(siç u përmend më herët). Ashtu si me shumicën e mjeteve të linjës së komandës, mund të shkoni jashtëzakonisht thellë. Më poshtë do t'ju tregojë vetëm lidhjet TCP, gjendja e të cilave është "KRIJUAR":

lsof -i -s TCP:ESTABLISHED

Në këtë pikë, duhet të keni një kuptim themelor se si lsoffunksionon, së bashku me disa raste të përdorimit të zakonshëm. Për lexim të mëtejshëm, shihni faqen e menaxhimit të lsofnë sistemin tuaj.


Leave a Comment

Instaloni Plesk në CentOS 7

Instaloni Plesk në CentOS 7

Përdorimi i një sistemi të ndryshëm? Plesk është një panel kontrolli i pronarit të hostit në internet që lejon përdoruesit të administrojnë faqet e tyre të internetit personale dhe/ose të klientëve, bazat e të dhënave

Instaloni Lets Encrypt SSL në aplikacionin WordPress me një klik

Instaloni Lets Encrypt SSL në aplikacionin WordPress me një klik

Hyrje Lets Encrypt është një shërbim i autoritetit certifikues që ofron certifikata falas TLS/SSL. Procesi i instalimit është thjeshtuar nga Certbot,

Si të instaloni dhe konfiguroni PHP 7.0 ose PHP 7.1 në Ubuntu 16.04

Si të instaloni dhe konfiguroni PHP 7.0 ose PHP 7.1 në Ubuntu 16.04

PHP dhe paketat e lidhura me to janë komponentët më të përdorur gjatë vendosjes së një serveri në internet. Në këtë artikull, ne do të mësojmë se si të konfigurojmë PHP 7.0 ose PHP 7.1 o

Si të instaloni Lighttpd (LLMP Stack) në CentOS 6

Si të instaloni Lighttpd (LLMP Stack) në CentOS 6

Hyrje Lighttpd është një fork i Apache që synon të jetë shumë më pak intensiv me burime. Është i lehtë, prandaj emri i tij, dhe është mjaft i thjeshtë për t'u përdorur. Instaloni

Tre panele kontrolli të serverit falas (Instalim i shpejtë)

Tre panele kontrolli të serverit falas (Instalim i shpejtë)

1. Virtualmin/Webmin Virtualmin është një panel kontrolli i fuqishëm dhe fleksibël i hostimit në internet për sistemet Linux dhe UNIX i bazuar në bazën e mirënjohur të internetit me burim të hapur.

Vendosja e një aplikacioni Yii në Ubuntu 14.04

Vendosja e një aplikacioni Yii në Ubuntu 14.04

Yii është një kornizë PHP që ju lejon të zhvilloni aplikacione më shpejt dhe më lehtë. Instalimi i Yii në Ubuntu është i thjeshtë, siç do të mësoni saktësisht

Përdorimi i ekranit në Ubuntu 14.04

Përdorimi i ekranit në Ubuntu 14.04

Screen është një aplikacion që lejon përdorimin e shumëfishtë të sesioneve të terminalit brenda një dritareje. Kjo ju lejon të simuloni dritare të shumta terminale ku është ma

Konfiguro serverin tuaj DNS në Debian/Ubuntu

Konfiguro serverin tuaj DNS në Debian/Ubuntu

Ky tutorial shpjegon se si të konfiguroni një server DNS duke përdorur Bind9 në Debian ose Ubuntu. Gjatë gjithë artikullit, zëvendësoni emrin e domain-it tuaj në përputhje me rrethanat. Në

Përdorimi i Logrotate për të menaxhuar skedarët e regjistrave

Përdorimi i Logrotate për të menaxhuar skedarët e regjistrave

Hyrje Logrotate është një mjet Linux që thjeshton administrimin e skedarëve të regjistrit. Zakonisht funksionon një herë në ditë përmes një pune cron dhe menaxhon bazën e regjistrave

Konfigurimi i rrjeteve statike dhe IPv6 në CentOS 7

Konfigurimi i rrjeteve statike dhe IPv6 në CentOS 7

VULTR kohët e fundit ka bërë ndryshime në fund të tyre dhe gjithçka duhet të funksionojë mirë tani me NetworkManager të aktivizuar. Nëse dëshironi të çaktivizoni

Modifikimi i Icinga2 për të përdorur Modelin Master/Klient në CentOS 6 ose CentOS 7

Modifikimi i Icinga2 për të përdorur Modelin Master/Klient në CentOS 6 ose CentOS 7

Icinga2 është një sistem i fuqishëm monitorimi dhe kur përdoret në një model master-klient, ai mund të zëvendësojë nevojën për kontrolle monitorimi të bazuara në NRPE. Master-klien

Përpiloni dhe instaloni Nginx me Modulin e PageSpeed ​​në Debian 8

Përpiloni dhe instaloni Nginx me Modulin e PageSpeed ​​në Debian 8

Në këtë artikull, ne do të shohim se si të përpiloni dhe instaloni Nginx mainline nga burimet zyrtare të Nginx me modulin PageSpeed, i cili ju lejon t

Si të instaloni Gitea në Debian 9

Si të instaloni Gitea në Debian 9

Përdorimi i një sistemi të ndryshëm? Gitea është një sistem alternativ i kontrollit të versionit me burim të hapur, i vetë-pritur, i mundësuar nga Git. Gitea është shkruar në Golang dhe është

Si të instaloni Gitea në Ubuntu 18.04

Si të instaloni Gitea në Ubuntu 18.04

Përdorimi i një sistemi të ndryshëm? Gitea është një sistem alternativ i kontrollit të versionit me burim të hapur, i vetë-pritur, i mundësuar nga git. Gitea është shkruar në Golang dhe është

Si të instaloni MODX Revolution në një FreeBSD 11 FAMP VPS

Si të instaloni MODX Revolution në një FreeBSD 11 FAMP VPS

Përdorimi i një sistemi të ndryshëm? MODX Revolution është një Sistem i Menaxhimit të Përmbajtjes (CMS) i shpejtë, fleksibël, i shkallëzuar, me burim të hapur, i shkallës së ndërmarrjes, i shkruar në PHP. Ajo i

Instalimi i Docker CE në Ubuntu 16.04

Instalimi i Docker CE në Ubuntu 16.04

Përdorimi i një sistemi të ndryshëm? Docker është një aplikacion që lejon vendosjen e programeve që ekzekutohen si kontejnerë. Ishte shkruar në programin popullor Go

Si të instaloni Golang 1.8.3 në CentOS 7, Ubuntu 16.04 dhe Debian 9

Si të instaloni Golang 1.8.3 në CentOS 7, Ubuntu 16.04 dhe Debian 9

Golang është një gjuhë programimi e zhvilluar nga Google. Falë shkathtësisë, thjeshtësisë dhe besueshmërisë së tij, Golang është bërë një nga më të populluarit

Përmirësimi i shfrytëzimit të lopës së pistë në CentOS

Përmirësimi i shfrytëzimit të lopës së pistë në CentOS

Çfarë është Lopa e Pistë (CVE-2016-5195)? Dobësia e Dirty Cow shfrytëzohet përmes mënyrës se si Linux përpunon kodin. Ai lejon që një përdorues i paprivilegjuar të gai

Konfiguro një përdorues jo-rrënjë me Sudo Access në Ubuntu

Konfiguro një përdorues jo-rrënjë me Sudo Access në Ubuntu

Të kesh vetëm një përdorues, i cili është root, mund të jetë i rrezikshëm. Pra, le ta rregullojmë atë. Vultr na ofron lirinë për të bërë si të duam me përdoruesit dhe serverët tanë

Rivendosni fjalëkalimin rrënjësor MySQL në Debian/Ubuntu

Rivendosni fjalëkalimin rrënjësor MySQL në Debian/Ubuntu

Nëse e keni harruar fjalëkalimin tuaj rrënjësor MySQL, mund ta rivendosni atë duke ndjekur hapat në këtë artikull. Procesi është mjaft i thjeshtë dhe funksionon në to

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë