Linux-kommandoer

Linux lsof Kommando

Linux lsof Kommando
“Lsof” -kommandoværktøjet i Linux er et af de mange indbyggede værktøjer, der er super nyttigt til at tjekke “listen over åbne filer”. Ja, udtrykket "lsof" er en forkortelse af opgaven.

Der er en række processer, der kører i systemet hele tiden og har adgang til forskellige filer i systemet. Disse filer kan være diskfiler, scripts, netværksstik, enheder, navngivne rør og andre. Ved hjælp af “lsof” er det muligt at udføre mange ting, f.eks. Fejlretning. Det er også ret nyttigt for systemadministratorer at finde ud af, hvilke filer der er adgang til ved hvilke processer. Et af de mest nyttige scenarier, jeg har fundet, er når du er ved at afmontere et filsystem, men det stadig er tilgængeligt.

Uden yderligere ado, lad os komme i gang med “lsof”! Jeg antager, at dit nuværende UNIX / Linux-system allerede har “lsof” installeret.

Beliggenhed

hvilken lsof

Dette rapporterer den fulde sti for kommandoen, i dette tilfælde "lsof".

“Lsof” version
lsof -v

Dette vil rapportere detaljeret version af “lsof”, inklusive builddatoen for binær, compiler-version, compiler-flag og andre.

Grundlæggende “lsof” brug

Kør "lsof" af sig selv.

lsof

Dette rapporterer en STOR liste over alle de filer, som systemet får adgang til i øjeblikket kommandoen køres.

Mens alle felter er selvforklarende, skal du for det meste blive forvirret over kolonnerne "FD" og "TYPE" og deres værdier. Lad os tjekke dem ud.

FD: Forkortelse af "File Descriptor". Det kommer med følgende værdier.

Der er også andre værdier, du vil bemærke i kolonnen, som "1u" efterfulgt af u, r, w osv. værdi. Hvad betyder det??

TYPE: Beskriver filtypen og dens identifikation. Værdierne er som følger.

Brugerspecifikke åbnede filer

Linux er en strålende flerbrugerplatform. Flere brugere kan få adgang til systemet på samme tid og udføre operationer, som de har tilladelse til.

For at tjekke de filer, som en bestemt bruger har adgang til, skal du køre følgende kommando.

lsof -u

Men for at tjekke brugerne med højere rang, skal "lsof" have "superbruger" privilegium.

sudo lsof -u

Hvad med at tjekke alle kommandoer og filer, som en bestemt bruger har adgang til? Kør den følgende.

lsof -i -u

Igen, for brugere med højere rang, skal "lsof" have "superbruger" -privilegiet.

sudo lsof -i -u

Havnespecifikke kørende processer

For at finde ud af alle de processer, der i øjeblikket bruger en bestemt port, skal du ringe til "lsof" med "-i" -faget efterfulgt af protokollen og portoplysningerne.

lsof -i<46><@hostname|host_address>
:

For eksempel, for at tjekke alle de programmer, der aktuelt har adgang til port 80 via TCP / IP-protokol, skal du køre følgende kommando.

lsof -i TCP: 80

Denne metode kan også bruges til at vise alle de processer, der bruger porte inden for et bestemt interval, for eksempel 1 til 1000. Kommandostrukturen ligner før med lidt magi ved portnummerdelen.

lsof -i TCP: 1-1000

Protokolspecifikke processer

Her er 2 eksempler, der viser de processer, der i øjeblikket bruger IPv4- og IPv6-protokollerne.

lsof -i 4

lsof -i 6

Notering af netværksforbindelser

Den følgende kommando rapporterer alle netværksforbindelser fra det aktuelle system.

lsof -i

Eksklusive med ^

Ja, vi kan udelukke specifik bruger, port, FD og andre ved hjælp af tegnet “^”. Alt du skal gøre er at bruge det med forsigtighed, så du ikke ødelægger hele output.

Lad os i dette eksempel udelukke alle processer fra brugerens "rod".

lsof -u ^ rod

Der er andre måder at bruge denne ekskluderende mekanisme med "lsof", for eksempel med flag som "-c", "-d" osv. Ikke alle flag understøtter denne mekanisme. Derfor anbefaler jeg at prøve en demo med denne metode med ethvert flag, før du implementerer den i nogle scripts.

PID-søgning

PID er en vigtig egenskab ved enhver kørende proces på systemet. Det gør det nemmere at finde frem til en bestemt proces. Processnavnet er ikke helt nyttigt i mange situationer, da den samme binære kan oprette kopier af sig selv og udføre forskellige opgaver parallelt.

Hvis du ikke ved, hvordan du får PID for en proces, skal du bare bruge "ps" til at liste alle kørende processer og filtrere output ved hjælp af "grep" med procesnavnet og / eller kommandoer.

ps -A

Udfør nu filtreringen ved hjælp af "grep".

ps -A | grep

Tjek nu hvilke filer PID har adgang til.

lsof -p

Notering af åbne filer til en bestemt enhed

Funktionaliteten af ​​“lsof” er ikke kun begrænset til disse funktioner. Du kan også filtrere resultatet af “lsof” efter enhed. Til dette formål vil kommandoen se sådan ud.

lsof

Denne kommando er super nyttig til at finde ud af alle kørende processer med deres ejerinfo, der får adgang til et bestemt filsystem. Hvis du har problemer med at afmontere et filsystem, er dette den bedste vej at gå.

lsof

Liste åbnede filer under en mappe

I lighed med det foregående eksempel skal du blot sende biblioteksstien til “lsof” for at finde ud af, om nogen proces har adgang til den.

Bemærk: “lsof” vil kontrollere biblioteket rekursivt, så det kan tage tid.

= lsof + D

Bonus: afslut al brugeraktivitet

Vær yderst forsigtig med denne del, da den simpelthen kan ødelægge alt, hvad en bruger laver. Den følgende kommando dræber alle brugerens kørende processer.

sudo kill -9 'lsof -t -u Afsluttende tanker

Funktionerne i “lsof” stopper ikke bare her. De nævnte her er dem, som vi har mest brug for på daglig basis. Der er mange andre "lsof" -funktioner, der kan være nyttige (selvfølgelig i specifikke tilfælde).

For alle de tilgængelige funktioner og deres anvendelse, tjek man- og infosiderne på “lsof”.

mand lsof

info lsof

lsof -?

god fornøjelse!

5 bedste arkadespil til Linux
I dag er computere seriøse maskiner, der bruges til spil. Hvis du ikke kan få den nye høje score, ved du hvad jeg mener. I dette indlæg vil du kende n...
Kamp om Wesnoth 1.13.6 Udvikling frigivet
Kamp om Wesnoth 1.13.6 udgivet i sidste måned, er den sjette udviklingsudgivelse i 1.13.x-serien, og den leverer en række forbedringer, især til bruge...
Sådan installeres League Of Legends på Ubuntu 14.04
Hvis du er fan af League of Legends, er dette en mulighed for dig at prøvekøre League of Legends. Bemærk, at LOL understøttes på PlayOnLinux, hvis du ...