Įvadas į Lsof

Linux sistemoje daugelis objektų laikomi failais, neatsižvelgiant į tai, ar objektas iš tikrųjų yra failas, įrenginys, katalogas ar lizdas. Failą įtraukti į sąrašą paprasta, tam yra įmontuotas apvalkalas ls. O kas, jei vartotojas norėtų pamatyti, kuriuos failus šiuo metu atidaro žiniatinklio serverio procesas? Arba jei tas vartotojas norėjo sužinoti, kurie failai yra atidaryti tam tikrame kataloge? Štai čia ir lsofateina į žaidimą. Įsivaizduokite lsofkaip lssu „atidaryti failai“.

Atkreipkite dėmesį, kad nors BSD turi skirtingą naudingumą šiam darbui, fstat, kai kurie kiti Unix skoniai (pavyzdžiui, Solaris) taip pat turi lsof. Kitose platformose parinktys ir vėliavėlės skiriasi, taip pat ir išvesties išvaizda, tačiau apskritai šiame straipsnyje pateiktos žinios turėtų būti taikomos ir joms.

Pirmiausia pažvelkime į lsofišvesties formatą ir kaip jis turi būti skaitomas. Įprasta išvestis lsofbe jokių parametrų būtų panaši į šią. Tai buvo apkarpyta, kad būtų lengviau skaityti.

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

Šie stulpeliai reiškia:

  • KOMANDA – procesas, kuriam priklauso atidarytas failas, šiame pavyzdyje viskas yra susijusi su init.
  • PID – minėto proceso proceso identifikavimo numeris.
  • VARTOTOJAS – vartotojas, kuriam vadovauja procesas. Nes inittai beveik visada root.
  • FD – failo failo aprašas, dažniausiai naudojamas:
    • cwd- Dabartinis darbo katalogas (galite pastebėti panašumą į pwdkomandą, kuri spausdina dabartinį darbo katalogą).
    • rtd - Proceso šakninis katalogas.
    • txt- A text file, tai gali reikšti su procesu susijusį konfigūracijos failą arba su procesu susijusį (arba jam priklausantį) „šaltinio kodą“.
    • mem - Vadinamasis „atminties susiejimo failas“, tai reiškia virtualiosios atminties (skaityti: RAM) segmentą, kuris buvo priskirtas failui.
    • Skaičius – skaičius reiškia tikrąjį failo aprašą, simbolis po skaičiaus yra failo atidarymo režimas:
    • r - Skaityk.
    • w - Rašyk.
    • u - Skaityti ir rašyti.
  • TIPAS – nurodo tikrąjį failo tipą, dažniausiai yra:
    • REG - Įprastas failas.
    • DIR - Katalogas.
    • FIFO - Pirmas vidun, pirmas laukan.
  • DEVICE – pagrindinis ir antrasis įrenginio, kuriame yra failas, numeriai.
  • DYDIS – failo dydis baitais.
  • NODE – failo inodo numeris.
  • NAME – failo pavadinimas.

Kol kas tai gali būti šiek tiek slegianti, bet jei dirbsite lsofkelis kartus, tai greitai nugrims į jūsų smegenis.

Kaip minėta pirmiau, išvestis lsofčia buvo sutrumpinta. Be jokių argumentų ar filtrų, lsofsukuria šimtus išvesties eilučių, kurios tik supainios jus.

Yra du pagrindiniai šios problemos sprendimo būdai:

  • Norėdami lsofsusiaurinti rezultatus, naudokite vieną ar daugiau komandų eilutės parinkčių.
  • Vamzdžiai išvestis per, pavyzdžiui, grep.

Nors pastaroji parinktis gali atrodyti patogiau, nes jums nereikės įsiminti lsofkomandinės eilutės parinkčių, ji paprastai nėra tokia lanksti ir efektyvi, todėl pasiliksime prie pirmosios.

Įsivaizduokime, kad norite atidaryti failą naudodami mėgstamą teksto rengyklę, o teksto rengyklė jums pasakys, kad ją galima atidaryti tik skaitymo režimu, nes kita programa jau pasiekia jį. lsofpadės išsiaiškinti, kas yra nusikaltėlis:

lsof /path/to/your/file

Taip bus gauta panaši išvestis:

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

Matyt, pamiršote uždaryti ir senesnę sesiją! Labai panaši problema iškyla, kai bandote atjungti NFS bendrinamą failą ir umountpranešate, kad to negalima, nes kažkas vis dar pasiekia prijungtą aplanką. Vėlgi, lsofgali padėti nustatyti kaltininką:

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

Atkreipkite dėmesį į pasvirąjį brūkšnį, tai svarbu. Priešingu atveju lsofmanysime, kad turite omenyje įprastą failą. Neapsigaukite dėl +priešais vėliavėlės – lsofturi tiek daug komandinės eilutės parinkčių, kurių reikia +be įprastų -. Išvestis atrodytų taip:

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

Tai reiškia, kad procesas mocpsu PID 5637, priklausantis vartotojui music, atidarė failą pavadinimu RMS_GNU_SONG.ogg. Tačiau net ir uždarius šį procesą išlieka problema – NFS tomo negalima atjungti.

lsofturi -cvėliavėlę, rodančią failus, atidarytus savavališku proceso pavadinimu.

lsof -c mocp

Taip būtų gauta išvestis, atrodanti taip:

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

Šiame pavyzdyje yra kitas mocppaleidimo pavyzdys , neleidžiantis atjungti bendrinimo. Išjungę šį procesą, norite įsitikinti, kad vartotojas musicnėra atidaręs kitų potencialiai problemiškų failų. lsofturi -uvėliavėlę, rodančią konkretaus vartotojo atidarytus failus. Atminkite, kad failas ne visada yra tik įprastas failas standžiajame diske!

lsof -u music

Taip pat galite perduoti kelis vartotojus, atskirtus kableliais:

lsof -u music,moremusic

Svarbi pastaba dėl numatytąją elgseną lsof: rezultatai ARBA įvertinimu pagrįsta, o tai reiškia, kad jūs pamatysite failų rezultatus atidarytus procesus, kurie valdo arba vartotojui music, ar vartotojui moremusic. Jei norite matyti rezultatus, atitinkančius procesus, priklausančius abiem naudotojams, turėsite perduoti vėliavėlę -a:

lsof -au music, moremusic

Kadangi abu vartotojai yra grupėje musicusers, taip pat galite išvardyti failus pagal grupę:

lsof -g musicusers

Taip pat galite derinti komandų eilutės vėliavėles:

lsof -u music,moremusic -c mocp

or

lsof -u ^music +D /home/Music

Paskutinėje eilutėje pridėjome dar vieną specialią vėliavėlę - ^, kuri reiškia loginį NE . Jei paleidus šią komandą išvestis tuščia, atjungimas greičiausiai bus sėkmingas.

Ankstesniuose pavyzdžiuose dažniausiai žiūrėjome į įprastus failus. O kaip dėl lizdų ir tinklo jungčių?

Norėdami išvardyti visus esamus tinklo ryšius, lsofyra -ivėliavėlė:

lsof -i

Rezultatas atrodo panašus į tai, ką matėme iki šiol...

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)

... išskyrus vieną skirtumą: vietoj failų pavadinimų ar katalogų NAMEdabar stulpelyje rodoma ryšio informacija. Kiekviena jungtis susideda iš šių dalių:

  • protokolas.
  • Vietinis pagrindinio kompiuterio pavadinimas.
  • Ryšio šaltinio prievadas.
  • Paskirties DNS pavadinimas.
  • Kelionės tikslo uostas.
  • Ryšio būsena.

Kaip ir daugelio kitų įrankių atveju, galite atsisakyti DNS pavadinimų ir prievadų nustatymo ( -nir -Patitinkamai ). Vėliava -iima papildomų parametrų. Galite nurodyti, ar rodyti tcp, udpar ne , icmpjungtis arba tam tikrus prievadus:

lsof -i :25
or
lsof -i :smtp

Vėlgi, parametrus galima derinti. Toliau pateiktas pavyzdys...

lsof -i tcp:80

... parodys tik TCP ryšius naudojant 80 prievadą. Taip pat galite jį derinti su parinktimis, kurias jau žinote iš „klasikinių“ failų:

lsof -a -u httpd -i tcp

Tai parodys visus vartotojo atidarytus TCP ryšius httpd. Atkreipkite dėmesį į -avėliavėlę, kuri pakeičia numatytąjį elgseną lsof(kaip minėta anksčiau). Kaip ir daugumos komandinės eilutės įrankių atveju, galite įsigilinti. Toliau bus rodomi tik TCP ryšiai, kurių būsena yra "NUSTATYTA":

lsof -i -s TCP:ESTABLISHED

Šiuo metu turėtumėte turėti pagrindinį supratimą apie tai, kaip lsofveikia, ir kai kuriuos įprastus naudojimo atvejus. Norėdami daugiau skaityti, žr. lsofsavo sistemos vadovo puslapį .


Leave a Comment

Įdiekite „Plesk“ „CentOS 7“.

Įdiekite „Plesk“ „CentOS 7“.

Naudojate kitą sistemą? Plesk yra patentuotas žiniatinklio prieglobos valdymo skydelis, leidžiantis vartotojams administruoti savo asmenines ir (arba) klientų svetaines, duomenų bazes

Nustatykite „Cacti“ naudodami „Debian Jessie“.

Nustatykite „Cacti“ naudodami „Debian Jessie“.

Įvadas Cacti yra atvirojo kodo stebėjimo ir grafikų sudarymo įrankis, visiškai pagrįstas RRD duomenimis. Naudodami „Cacti“ galite stebėti beveik bet kokio tipo įrenginius

Įdiekite „Lets Encrypt SSL“ „WordPress“ programoje vienu spustelėjimu

Įdiekite „Lets Encrypt SSL“ „WordPress“ programoje vienu spustelėjimu

Įvadas „Lets Encrypt“ yra sertifikatų išdavimo tarnyba, siūlanti nemokamus TLS/SSL sertifikatus. Diegimo procesą supaprastina Certbot,

Kaip nustatyti „Tekkit Classic“ serverį „Ubuntu 16.10“.

Kaip nustatyti „Tekkit Classic“ serverį „Ubuntu 16.10“.

Naudojate kitą sistemą? Kas yra Tekkit Classic? „Tekkit Classic“ yra visų žinomo ir mėgstamo žaidimo modifikacijų paketas; Minecraft. Jame yra keletas ver

„Debian Wheezy“ nustatykite „iRedMail“.

„Debian Wheezy“ nustatykite „iRedMail“.

Naudojate kitą sistemą? Ši pamoka parodys, kaip įdiegti grupinę programinę įrangą iRedMail naujai įdiegus Debian Wheezy. Turėtumėte naudoti tarnavimą

Jekyll tinklaraščio kūrimas Ubuntu 16.04

Jekyll tinklaraščio kūrimas Ubuntu 16.04

Naudojate kitą sistemą? „Jekyll“ yra puiki „WordPress“ alternatyva dienoraščių rašymui ar turinio dalijimuisi. Tam nereikia jokių duomenų bazių ir tai labai paprasta

Kaip įdiegti „Squid“ tarpinį serverį „CentOS“.

Kaip įdiegti „Squid“ tarpinį serverį „CentOS“.

Squid yra populiari nemokama „Linux“ programa, leidžianti sukurti persiuntimo žiniatinklio tarpinį serverį. Šiame vadove pamatysite, kaip įdiegti „Squid“ „CentOS“, kad paverstumėte jus

Kaip įdiegti „Lighttpd“ (LLMP Stack) „CentOS 6“.

Kaip įdiegti „Lighttpd“ (LLMP Stack) „CentOS 6“.

Įvadas Lighttpd yra „Apache“ šakutė, skirta daug mažiau išteklių imti. Jis yra lengvas, todėl jo pavadinimas ir yra gana paprastas naudoti. Įdiegti

Trys nemokami serverio valdymo skydeliai (greitasis diegimas)

Trys nemokami serverio valdymo skydeliai (greitasis diegimas)

1. Virtualmin/Webmin Virtualmin yra galingas ir lankstus interneto prieglobos valdymo skydelis, skirtas Linux ir UNIX sistemoms, pagrįstas gerai žinoma atvirojo kodo žiniatinklio baze

Yii programos nustatymas Ubuntu 14.04

Yii programos nustatymas Ubuntu 14.04

Yii yra PHP sistema, leidžianti greičiau ir lengviau kurti programas. „Yii“ įdiegimas „Ubuntu“ yra nesudėtingas, nes sužinosite tiksliai

Ekrano naudojimas Ubuntu 14.04

Ekrano naudojimas Ubuntu 14.04

Ekranas yra programa, leidžianti kelis kartus naudoti terminalo seansus viename lange. Tai leidžia imituoti kelis terminalo langus, kur tai ma

Logrotate naudojimas žurnalo failams tvarkyti

Logrotate naudojimas žurnalo failams tvarkyti

Įvadas Logrotate yra „Linux“ programa, supaprastinanti žurnalo failų administravimą. Paprastai jis veikia kartą per dieną per cron darbą ir tvarko žurnalų bazę

Statinio tinklo ir IPv6 konfigūravimas CentOS 7

Statinio tinklo ir IPv6 konfigūravimas CentOS 7

VULTR neseniai atliko pakeitimus, ir dabar viskas turėtų veikti gerai, kai įjungta „NetworkManager“. Jei norite išjungti

„Icinga2“ modifikavimas, kad būtų naudojamas pagrindinis / kliento modelis „CentOS 6“ arba „CentOS 7“.

„Icinga2“ modifikavimas, kad būtų naudojamas pagrindinis / kliento modelis „CentOS 6“ arba „CentOS 7“.

Icinga2 yra galinga stebėjimo sistema, o kai naudojama pagrindinio kliento modelyje, ji gali pakeisti NRPE pagrįstų stebėjimo patikrų poreikį. Meistras-klientas

Kaip įdiegti Apache Cassandra 3.11.x Ubuntu 16.04 LTS

Kaip įdiegti Apache Cassandra 3.11.x Ubuntu 16.04 LTS

Naudojate kitą sistemą? Apache Cassandra yra nemokama ir atviro kodo NoSQL duomenų bazių valdymo sistema, skirta užtikrinti mastelio keitimą, hig.

Kaip įdiegti „Apache Cassandra 3.11.x“ „CentOS 7“.

Kaip įdiegti „Apache Cassandra 3.11.x“ „CentOS 7“.

Naudojate kitą sistemą? Apache Cassandra yra nemokama ir atviro kodo NoSQL duomenų bazių valdymo sistema, skirta užtikrinti mastelio keitimą, hig.

Kaip įdiegti MODX Revolution Ubuntu 16.04 LAMP VPS

Kaip įdiegti MODX Revolution Ubuntu 16.04 LAMP VPS

Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio, nemokama ir atviro kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta i.

Kaip įdiegti „Mattermost 4.1“ „CentOS 7“.

Kaip įdiegti „Mattermost 4.1“ „CentOS 7“.

Naudojate kitą sistemą? Mattermost yra atvirojo kodo, savarankiškai priglobta alternatyva Slack SAAS pranešimų paslaugai. Kitaip tariant, naudodami Mattermost, jūs apytiksliai

Kaip įdiegti MODX Revolution FreeBSD 11 FAMP VPS

Kaip įdiegti MODX Revolution FreeBSD 11 FAMP VPS

Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio atvirojo kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta PHP. Tai i

Leidžia šifruoti Plesk

Leidžia šifruoti Plesk

„Plesk“ valdymo skydelyje yra labai graži „Lets Encrypt“ integracija. „Lets Encrypt“ yra vienas iš vienintelių SSL teikėjų, išduodančių visus sertifikatus

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį