Opsæt Cacti på Debian Jessie
Introduktion Cacti er et open source overvågnings- og grafværktøj, som er fuldt baseret på RRD-data. Gennem Cacti kan du overvåge næsten enhver type enhed
Under Linux betragtes mange objekter som en fil, uanset om objektet faktisk er en fil, enhed, mappe eller socket. Det er nemt at angive en fil, der er indbygget shell ls
til det. Men hvad nu hvis en bruger ville se, hvilke filer der i øjeblikket åbnes af webserverprocessen? Eller hvis den bruger ønskede at finde ud af, hvilke filer der er åbnet i en bestemt mappe? Det er her, der lsof
spiller ind. Forestil dig lsof
som en ls
med tilføjelse af "åbne filer".
Bemærk venligst, at selvom BSD'erne har et andet værktøj til dette job, fstat
har flere andre varianter af Unix (f.eks. Solaris) også lsof
. Indstillingerne og flagene er forskellige på de andre platforme, såvel som udseendet af outputtet, men generelt burde viden i denne artikel også være anvendelig for dem.
Lad os først se på lsof
outputformatet, og hvordan det skal læses. Det sædvanlige output lsof
uden nogen parametre ville ligne følgende. Dette er blevet trimmet for læsbarhed.
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
Disse kolonner betyder følgende:
init
.init
det er næsten altid root
.cwd
- Den aktuelle arbejdsmappe (du vil muligvis bemærke ligheden med pwd
kommandoen, der udskriver den aktuelle arbejdsmappe).rtd
- Rodbiblioteket for en proces.txt
- A text file
, dette kan enten betyde en konfigurationsfil relateret til processen eller "kildekoden" relateret til (eller tilhører) processen.mem
- En såkaldt "memory mapped file", det vil sige et segment af virtuel hukommelse (læs: RAM), der er blevet tildelt en fil.r
- Læs.w
- Skriv.u
- Læs og skriv.REG
- En almindelig fil.DIR
- En mappe.FIFO
- Først ind først ud.Dette er måske en lille smule overvældende for nu, men hvis du arbejder med lsof
et par gange, vil det hurtigt synke ind i din hjerne.
Som nævnt ovenfor er outputtet af lsof
blevet forkortet her. Uden nogen argumenter eller filtre, lsof
producerer hundredvis af linjer af output, som kun vil efterlade dig forvirret.
Der er to grundlæggende tilgange til at løse dette problem:
lsof
kommandolinjeindstillingerne til at indsnævre resultaterne.grep
.Mens sidstnævnte mulighed kan lyde mere behagelig, da du ikke behøver at huske lsof
kommandolinjeindstillingerne, er den generelt ikke så fleksibel og effektiv, så vi holder os til den første.
Lad os forestille os, at du vil åbne en fil med din foretrukne teksteditor, og at teksteditoren fortæller dig, at den kun kan åbnes i skrivebeskyttet tilstand, fordi et andet program allerede har adgang til den. lsof
vil hjælpe dig med at finde ud af, hvem gerningsmanden er:
lsof /path/to/your/file
Dette vil producere et output svarende til dette:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vim 2679 root 5w REG 254,1 121525 6035622 /root/lsof.txt
Tilsyneladende har du glemt at lukke og ældre session! Et meget lignende problem opstår, når du forsøger at afmontere en NFS-share og umount
fortæller dig, at det ikke kan, fordi noget stadig har adgang til den monterede mappe. Igen, lsof
kan hjælpe dig med at identificere den skyldige:
lsof +D /path/to/your/directory/
Læg mærke til den efterfølgende skråstreg, det er vigtigt. Ellers lsof
vil antage, at du mener en almindelig fil. Bliv ikke forvirret af den +
foran flaget - lsof
har så mange kommandolinjeindstillinger, som den har brug +
for ud over de mere almindelige -
. Outputtet ville se sådan ud:
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
Det betyder, at processen mocp
med PID'et 5637
tilhørende brugeren music
har åbnet en fil kaldet RMS_GNU_SONG.ogg
. Men selv efter at have lukket denne proces, er der stadig et problem - NFS-diskenheden kan ikke afmonteres.
lsof
har et -c
flag, der viser åbnede filer et vilkårligt procesnavn.
lsof -c mocp
Det ville producere et output, der ser sådan ud:
mocp 9383 music 4r REG 0,19 10147719 102367344 /home/Music/ANOTHER_RMS_GNU_SONG.ogg
I dette eksempel er der en anden forekomst af mocp
kørsel, der forhindrer dig i at afmontere delingen. Efter at have lukket den proces ned, vil du sikre dig, at brugeren ikke music
har andre potentielt problematiske filer åbne. lsof
har et -u
flag til at vise filer åbnet af en bestemt bruger. Husk, en fil er ikke altid bare en almindelig fil på din harddisk!
lsof -u music
Du kan også sende flere brugere, adskilt af kommaer:
lsof -u music,moremusic
En vigtig bemærkning om standardadfærden for lsof
: resultaterne er ELLER- baserede, hvilket betyder, at du vil se filresultater åbnet af processer, der ejes af enten brugeren music
eller brugeren moremusic
. Hvis du ønskede at se resultater, der matcher processer, der ejes af begge brugere, skal du videregive flaget -a
:
lsof -au music, moremusic
Da begge brugere er i gruppen musicusers
, kan du også liste filer baseret på gruppe:
lsof -g musicusers
Du kan også kombinere kommandolinjeflag:
lsof -u music,moremusic -c mocp
or
lsof -u ^music +D /home/Music
I den sidste linje tilføjede vi endnu et specielt flag - ^
, som står for et logisk IKKE . Hvis outputtet er tomt efter at have kørt den kommando, vil afmonteringen højst sandsynligt lykkes.
I de foregående eksempler så vi for det meste på almindelige filer. Hvad med stikkontakter og netværksforbindelser?
For at liste alle aktuelle netværksforbindelser lsof
har -i
flaget:
lsof -i
Outputtet ligner det, vi har set indtil videre...
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)
... bortset fra en forskel: i stedet for filnavne eller mapper viser kolonnen NAME
nu forbindelsesinformation. Hver forbindelse består af følgende dele:
Som med mange andre værktøjer, kan du fravælge løse DNS-navne og porte ( -n
og -P
henholdsvis). Flaget -i
tager yderligere parametre. Du kan angive, om du vil vise tcp
, udp
eller icmp
forbindelser eller visse porte:
lsof -i :25
or
lsof -i :smtp
Igen kan parametre kombineres. Følgende eksempel...
lsof -i tcp:80
... vil kun vise dig TCP-forbindelser ved hjælp af port 80. Du kan også kombinere det med de muligheder, du allerede kender fra "klassiske" filer:
lsof -a -u httpd -i tcp
Dette vil vise dig alle TCP-forbindelser åbnet af brugeren httpd
. Bemærk -a
flaget, som ændrer standardadfærden for lsof
(som tidligere nævnt). Som med de fleste kommandolinjeværktøjer kan du gå ekstremt dybt. Følgende vil kun vise dig TCP-forbindelser, hvis tilstand er "ETABLISHED":
lsof -i -s TCP:ESTABLISHED
På dette tidspunkt bør du have en grundlæggende forståelse af, hvordan det lsof
fungerer, sammen med nogle almindelige brugssager. For yderligere læsning, se manpage lsof
på dit system.
Introduktion Cacti er et open source overvågnings- og grafværktøj, som er fuldt baseret på RRD-data. Gennem Cacti kan du overvåge næsten enhver type enhed
Introduktion Lets Encrypt er en certifikatmyndighedstjeneste, der tilbyder gratis TLS/SSL-certifikater. Installationsprocessen forenkles af Certbot,
Bruger du et andet system? Denne vejledning viser dig, hvordan du installerer groupware iRedMail på en ny installation af Debian Wheezy. Du bør bruge en serve
Introduktion Lighttpd er en forgrening af Apache, der sigter mod at være meget mindre ressourcekrævende. Den er let, deraf navnet, og den er ret enkel at bruge. Installer
1. Virtualmin/Webmin Virtualmin er et kraftfuldt og fleksibelt webhotel kontrolpanel til Linux og UNIX systemer baseret på den velkendte Open Source web-base
Yii er en PHP-ramme, der giver dig mulighed for at udvikle applikationer hurtigere og nemmere. Installation af Yii på Ubuntu er ligetil, da du vil lære nøjagtigt
Screen er et program, der tillader flere terminalsessioner inden for et vindue. Dette giver dig mulighed for at simulere flere terminalvinduer, hvor det ma
Introduktion Logrotate er et Linux-værktøj, der forenkler administrationen af logfiler. Det kører typisk en gang om dagen via et cron-job og administrerer logbasen
VULTR har for nylig foretaget ændringer i deres ende, og alt skulle nu fungere fint ud af boksen med NetworkManager aktiveret. Skulle du ønske at deaktivere
Icinga2 er et kraftfuldt overvågningssystem, og når det bruges i en master-klient-model, kan det erstatte behovet for NRPE-baserede overvågningstjek. Mester-klienten
I denne artikel vil vi se, hvordan du kompilerer og installerer Nginx mainline fra de officielle kilder til Nginx med PageSpeed-modulet, som giver dig mulighed for at
Bruger du et andet system? Apache Cassandra er et gratis og open source NoSQL-databasestyringssystem, der er designet til at give skalerbarhed, høj
Bruger du et andet system? Introduktion Kanboard er et gratis og open source projektstyringssoftwareprogram, som er designet til at lette og visualisere
Bruger du et andet system? Introduktion Kanboard er et gratis og open source projektstyringssoftwareprogram, som er designet til at lette og visualisere
Bruger du et andet system? Gitea er et alternativt open source, selvhostet versionskontrolsystem drevet af Git. Gitea er skrevet på Golang og er
Bruger du et andet system? Gitea er et alternativt open source, selv-hostet versionskontrolsystem drevet af git. Gitea er skrevet på Golang og er
Bruger du et andet system? Thelia er et open source-værktøj til at skabe e-business-websteder og administrere onlineindhold skrevet i PHP. Thelia kildekode i
Hvad er Dirty Cow (CVE-2016-5195)? Dirty Cow-sårbarheden udnyttes gennem, hvordan Linux behandler kode. Det giver en uprivilegeret bruger mulighed for at gai
Det kan være farligt at have kun én bruger, som er root. Så lad os ordne det. Vultr giver os friheden til at gøre som vi vil med vores brugere og vores servere
Adminer er et letvægtsalternativ til phpMyAdmin. Til sammenligning er dens samlede pakkestørrelse 400KB mod 4,2 MB phpMyAdmin. I modsætning til phpMyAdmin, som
Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.
Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.
Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.
Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.
Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...
Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.
Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af dataene. Denne blog dækker udviklingen af datalagring på basis af en infografik.
Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.
I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.
For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af mac-maskiner. Læs denne artikel for at lære mere