Sistēmā visu laiku darbojas vairāki procesi, kas piekļūst dažādiem sistēmas failiem. Šie faili varētu būt diska faili, skripti, tīkla kontaktligzdas, ierīces, nosauktas caurules un citi. Izmantojot “lsof”, ir iespējams veikt daudzas lietas, piemēram, atkļūdošanu. Sistēmas administratoriem ir arī diezgan noderīgi noskaidrot, kuriem failiem kādi procesi tiek piekļūti. Viens no visnoderīgākajiem scenārijiem, ko esmu atradis, ir tad, kad jūs gatavojaties noņemt failu sistēmu, taču tai joprojām tiek piekļūts.
Bez papildu domām, sāksim darbu ar “lsof”! Es pieņemu, ka jūsu pašreizējā UNIX / Linux sistēmā jau ir instalēts “lsof”.
Atrašanās vieta
kas lsof
Tas ziņo par pilnu komandas ceļu, šajā gadījumā “lsof”.
“Lsof” versijalsof -v
Tas ziņos par “lsof” padziļinātu informāciju par versiju, ieskaitot binārā, kompilatora versijas, kompilatora karodziņu un citu izveides datumu.
Pamata “lsof” lietošana
Palaidiet “lsof” pats.
lsof
Tas ziņo par LIELU visu to failu sarakstu, kuriem sistēma piekļūst komandas palaišanas laikā.
Kaut arī visi lauki nav pašsaprotami, lielākoties sajaucas ar slejām “FD” un “TYPE” un to vērtībām. Pārbaudīsim tos.
FD: “File Descriptor” saīsinājums. Tas nāk ar šādām vērtībām.
- cwd: pašreizējais darba direktorijs
- rtd: saknes direktorijs
- txt: programmas teksts (dati, kods un citi)
- mem: Atmiņā kartēts fails
- kļūdīties: FD informācijas kļūda
- mmap: atmiņā kartēta ierīce
- ltx: koplietojamas bibliotēkas teksts (dati un kods)
- m86: DOS apvienot kartēto failu
Kolonnā pamanīsit arī citas vērtības, piemēram, “1u”, kam seko u, r, w utt. vērtība. Ko tie nozīmē?
- r: piekļuve lasīšanai
- w: rakstīšanas piekļuve
- u: piekļuve lasīšanai un rakstīšanai
- - : Nezināms režīms un tajā ir bloķēšanas raksturs
- ": Režīms nav zināms, un tajā nav bloķēšanas rakstzīmes
TYPE: apraksta faila tipu un tā identifikāciju. Vērtības ir šādas.
- DIR: Katalogs
- CHR: rakstzīmju īpašais fails
- REG: parasts fails
- FIFO: pirmais iekšā, pirmais ārā
Lietotājam īpaši atvērti faili
Linux ir izcila daudzlietotāju platforma. Vairāki lietotāji vienlaikus var piekļūt sistēmai un veikt darbības, kurām viņiem ir atļauja.
Lai pārbaudītu failus, kuriem piekļūst noteikts lietotājs, izpildiet šo komandu.
lsof -u
Tomēr, lai pārbaudītu lietotājus ar augstāku rangu, “lsof” būs nepieciešama “superlietotāja” privilēģija.
sudo lsof -u
Kā būtu pārbaudīt visas komandas un failus, kuriem piekļūst noteikts lietotājs? Palaidiet šo.
lsof -i -u
Atkal, lietotājiem ar augstāku rangu “lsof” būs nepieciešama “superlietotāja” privilēģija.
sudo lsof -i -u
Portam raksturīgi darbības procesi
Lai uzzinātu visus procesus, kas pašlaik izmanto noteiktu portu, zvaniet uz “lsof” ar “-i” karogu, kam seko protokols un ostas informācija.
lsof -i<46>:
Piemēram, lai pārbaudītu visas programmas, kurām pašlaik TCP / IP protokolā piekļūst 80. ports, izpildiet šādu komandu.
lsof -i TCP: 80
Šo metodi var izmantot arī, lai parādītu visus procesus, kas izmanto portus noteiktā diapazonā, piemēram, no 1 līdz 1000. Komandu struktūra ir līdzīga iepriekšējai, ar nelielu burvību porta numura daļā.
lsof -i TCP: 1-1000
Protokolam raksturīgi procesi
Šeit ir 2 piemēri, kas parāda procesus, kas pašlaik izmanto IPv4 un IPv6 protokolus.
lsof -i 4lsof -i 6
Tīkla savienojumu uzskaitīšana
Šī komanda ziņos par visiem tīkla savienojumiem no pašreizējās sistēmas.
lsof -i
Izslēdzot ar ^
Jā, mēs varam izslēgt konkrētu lietotāju, portu, FD un citus, izmantojot rakstzīmi “^”. Viss, kas jums jādara, ir to izmantot piesardzīgi, lai nesajauktu visu izvadi.
Šajā piemērā izslēgsim visus procesus no lietotāja “root”.
lsof -u ^ sakne
Ir arī citi veidi, kā izmantot šo izslēgšanas mehānismu ar “lsof”, piemēram, ar tādiem karodziņiem kā “-c”, “-d” utt. Ne visi karodziņi atbalsta šo mehānismu. Tāpēc es iesaku izmēģināt demonstrāciju ar šo metodi ar jebkuru karodziņu, pirms to ievietojat dažos skriptos.
PID meklēšana
PID ir svarīgs jebkura sistēmas darbības procesa īpašums. Tas ļauj precīzāk noteikt noteiktu procesu. Procesa nosaukums nav ļoti noderīgs daudzās situācijās, jo viens un tas pats binārs var izveidot sevis kopijas un paralēli veikt dažādus uzdevumus.
Ja nezināt, kā iegūt procesa PID, vienkārši izmantojiet “ps”, lai uzskaitītu visus darbojošos procesus un filtrētu izvadi, izmantojot “grep” ar procesa nosaukumu un / vai komandām.
ps -A
Veiciet filtrēšanu, izmantojot “grep”.
ps -A | grep
Tagad pārbaudiet, kuriem failiem PID piekļūst.
lsof -pNoteiktu ierīču atvērto failu uzskaitīšana
“Lsof” funkcionalitāte neaprobežojas tikai ar šīm funkcijām. Varat arī filtrēt “lsof” rezultātu pēc ierīces bāzes. Šim nolūkam komanda izskatīsies apmēram šādi.
lsof
Šī komanda ir ļoti noderīga, lai uzzinātu visus notiekošos procesus ar to īpašnieku informāciju, kas piekļūst konkrētai failu sistēmai. Ja jums ir problēmas ar failu sistēmas atvienošanu, tas ir labākais veids, kā to izdarīt.
lsofUzskaitiet atvērtos failus direktorijā
Līdzīgi kā iepriekšējā piemērā, vienkārši nododiet direktorijas ceļu vietnei “lsof”, lai uzzinātu, vai kāds process tam piekļūst.
Piezīme: “lsof” pārbaudīs direktoriju rekursīvi, tāpēc tas var aizņemt laiku.
= lsof + D
Bonuss: pārtrauciet visas lietotāja darbības
Esiet ļoti piesardzīgs attiecībā uz šo daļu, jo tas var vienkārši sajaukt ar visu, ko lietotājs dara. Šī komanda iznīcinās visus lietotāja darbojošos procesus.
sudo kill -9 'lsof -t -u“Lsof” funkcijas ne tikai apstājas šeit. Šeit pieminētie ir tie, kas mums visvairāk būs nepieciešami ikdienā. Ir daudz citu “lsof” funkciju, kas var noderēt (protams, īpašos gadījumos).
Lai uzzinātu visas pieejamās funkcijas un to lietojumu, skatiet “lsof” cilvēka un informācijas lapas.
cilvēks lsofinfo lsof
lsof -?
Izbaudi!