Noderīgas Linux komandas servera administrēšanai: ātra diagnostika un droša ikdiena

Noderīgas Linux komandas ikdienas darbam

Linux komand­rinda ir viens no ātrākajiem veidiem, kā pārvaldīt serveri, atrast problēmu cēloni un automatizēt rutīnas darbus. Pat ja jūs izmantojat grafisko vidi, uz serveriem bieži pieejams tikai SSH, tāpēc pārliecība par pamata komandām ietaupa laiku un samazina kļūdu risku. Šajā ceļvedī apkopotas praktiskas komandas, kuras visbiežāk noder, strādājot ar mājaslapām, datubāzēm, žurnālfailiem un tīklu.

Lai komandas izmantotu, jums vajag piekļuvi serverim (parasti ar SSH) un lietotāju ar atbilstošām tiesībām. Ja jūs sākat ar pārvaldītu hostingu, daļu darbību var veikt panelī, taču, pārejot uz lielāku kontroli, piemēram, VPS, komand­rinda kļūst par galveno instrumentu. Ja nepieciešama maksimāla jauda un izolācija, bieži izvēlas serveru īri, bet vienkāršiem projektiem pietiek ar hostingu.

Drošības piezīme: pirms komandas palaišanas pārliecinieties, ko tā dara, un, ja iespējams, testējiet uz kopijas vai “staging” vides. Īpaši uzmanīgi jābūt ar komandu kombinācijām, kur ir rm, pāradresācijas (>) un sudo. Dažas komandas zemāk ir dotas ar “drošām” opcijām (piemēram, -i vai --dry-run), lai samazinātu kļūdu iespējas.

Vēl viens noderīgs princips ir “mazie soļi”: ja neesat pārliecināts, vispirms izvadiet informāciju, tikai pēc tam veiciet izmaiņas. Piemēram, pirms masveida dzēšanas ar find, izmantojiet to pašu filtru bez -delete, lai redzētu sarakstu. Līdzīgi ar pāradresācijām: vispirms lietojiet >> (pievienot), nevis > (pārrakstīt), ja neesat pārliecināts, ka failu drīkst pārrakstīt.

Navigācija un failu pārvaldība

Failu sistēmas izpēte ir pirmais, ko darām, pieslēdzoties serverim. pwd parāda, kur jūs atrodaties, ls — kas ir mapē, bet cd ļauj pārvietoties. Bieži noder arī tree (ja instalēts), lai redzētu struktūru “vienā bildē”. Ja strādājat ar web projektiem, pierodiet atšķirt /var/www, /home un sistēmas mapes, lai nejauši nemainītu nepareizu vietu.

pwd
ls -lah
cd /var/www
tree -L 2

Kopēšanai, pārvietošanai un dzēšanai izmanto cp, mv, rm. Drošāks ieradums ir izmantot rm -i (prasīs apstiprinājumu) vai dzēst ar “atkritni” rīkiem, ja tie ir pieejami. Ja jāpārvieto daudz failu, vispirms pārbaudiet ar ls vai echo, kāds būs rezultāts. Un atcerieties: mv pārdēvēšana var būt tikpat destruktīva kā dzēšana, ja pārraksta esošu failu.

cp -av source/ backup_source/
mv oldname.conf oldname.conf.bak
rm -i file.txt

Ja jāmeklē faili, izmantojiet find un locate. find ir universāls un strādā visur, bet var būt lēnāks. Tipiski scenāriji: atrast lielākos failus, atrast nesen mainītos failus vai atrast konfigurāciju pēc nosaukuma. Ļoti praktiski ir kombinēt find ar -exec, bet sākumā to dariet uzmanīgi un vienmēr testējiet bez darbības (tikai izvada režīmā).

find /var/www -type f -name "*.log" -mtime -2
find / -type f -size +1G 2>/dev/null

Teksta skatīšana un logu analīze

Servera problēmas bieži “dzīvo” žurnālfailos. Ikdienai pietiek ar cat, less, head un tail. Ja logs ir liels, less ir ērtākais, jo ļauj meklēt ar / un pārvietoties pa lapām. tail -f ir klasisks, lai sekotu līdzi notikumiem reāllaikā, piemēram, kad testējat konfigurācijas izmaiņas vai restartējat servisu.

less /var/log/syslog
tail -n 200 /var/log/nginx/error.log
tail -f /var/log/nginx/access.log

Meklēšanai tekstā izmanto grep, bet, lai iegūtu statistiku, pievienojiet awk, sort un uniq. Piemēram, lai atrastu biežākos HTTP statusus vai IP adreses, kas visvairāk pieprasa resursus. Šādas vienas rindas komandas bieži aizstāj smagus rīkus un sniedz ātru “diagnozi”, ko tālāk varat apstiprināt ar monitoringu.

grep " 500 " /var/log/nginx/access.log | head
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head

Konfigurāciju rediģēšanai visdrošāk ir izmantot redaktoru, kas jums ir ērts (piem., nano vai vim), bet pirms izmaiņām izveidojiet rezerves kopiju. Īpaši tas attiecas uz web servera un ugunsmūra konfigurācijām. Vienkārša .bak kopija bieži glābj no situācijas, kad serviss vairs nestartē pēc sintakses kļūdas.

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
nano /etc/nginx/nginx.conf

Procesi, servisi un resursu patēriņš

Ja serveris “bremzē”, sāciet ar resursu apskati. top un htop (ja instalēts) parāda CPU, RAM un procesus. Diska brīvums — df -h, bet mapju “svars” — du -sh. Šīs komandas palīdz ātri saprast, vai problēma ir CPU pīķis, atmiņas trūkums, swap izmantošana vai pilns disks, kas bieži izraisa arī datubāžu un e-pasta kļūdas.

top
df -h
du -sh /var/www/*

Servisu pārvaldībai mūsdienu Linux izmanto systemctl. Ar to var pārbaudīt statusu, restartēt, skatīt žurnālus (caur journalctl) un iestatīt automātisku startēšanu. Labs ieradums: pēc konfigurācijas izmaiņām pārbaudiet sintaksi (ja servisam tāda ir), pēc tam restartējiet un uzreiz apskatiet statusu un pēdējos log ierakstus. Tādā veidā ātri pamanīsiet, vai servisam ir kļūda.

systemctl status nginx
nginx -t
systemctl reload nginx
journalctl -u nginx --since "10 min ago"

Lai atrastu, kurš process klausās uz porta, izmanto ss vai lsof. Tas ir noderīgi, ja serviss nestartē, jo ports jau ir aizņemts, vai ja jūs vēlaties pārbaudīt, vai aplikācija tiešām klausās uz paredzētā porta. Šīs komandas ir arī labs drošības pārbaudes rīks: jūs redzat, kas ir publiski pieejams un kas ir lokāls.

ss -lntp
lsof -i :80

Arhīvi un rezerves kopijas

Praktiski ikvienā serverī būs jāizpako arhīvs, jāizveido rezerves kopija vai jāpārkopē mape uz citu vietu. tar ir standarts Linux pasaulē, bet gzip/bzip2 un zip joprojām bieži sastopami. Izveidojot arhīvu, izmantojiet saprātīgus nosaukumus ar datumu, lai vēlāk nav jāmin, kura kopija ir aktuāla. Ja arhīvu veidojat no web mapēm, pārliecinieties, ka tajā nav sensitīvu .env failu, atslēgu vai datubāžu dumpu, kas nedrīkst nonākt publiskā vietā.

tar -czf site_backup_$(date +%F).tar.gz /var/www/site
tar -tzf site_backup_2026-02-20.tar.gz | head

Ja jums jāveic datubāzes rezerves kopija, izmantojiet atbilstošos rīkus (piem., mysqldump vai pg_dump) un glabājiet kopijas atsevišķi no servera, lai aparatūras problēma neiznīcina gan produkciju, gan backups. Snapshot ir ērts ātram atgriezienam, bet drošākā prakse vienmēr ir atjaunošanas tests: vismaz reizi periodā pārliecinieties, ka backups tiešām atjaunojas.

Tīkls un savienojamība

Ja problēma ir “neatveras”, pārbaudiet tīklu. ping un traceroute (vai mtr) palīdz saprast, vai ir savienojamība un kur “pazūd” maršruts. DNS pārbaudēm izmanto dig vai host. Ja strādājat ar domēniem, atcerieties, ka DNS maiņām ir izplatīšanās laiks, un lokāls kešs var rādīt vecas vērtības.

ping -c 4 8.8.8.8
dig example.com A +short
dig example.com MX +short

HTTP līmenī ātrākā pārbaude ir curl. Ar to var redzēt statusa kodu, pāradresācijas un galvenes. Tas ir īpaši noderīgi pēc SSL uzstādīšanas vai pāradresāciju sakārtošanas. Piemēram, varat pārbaudīt, vai http pāriet uz https ar 301, vai arī vai serveris dod pareizos drošības headerus.

curl -I http://example.com
curl -IL https://example.com

Programmu instalēšana atšķiras pēc distributīva. Debian/Ubuntu izmanto apt, bet CentOS/RHEL — dnf vai yum. Pirms instalācijas atjauniniet pakotņu sarakstu, un pēc tam instalējiet tikai to, kas vajadzīgs. Ja strādājat uz servera ar klientu datiem, izvairieties no “nejauša” eksperimenta ar nezināmiem repozitorijiem. Labāk izvēlēties pārbaudītus avotus un dokumentēt, kas tika pievienots.

apt update
apt install htop curl

Lietotāji, tiesības un droša ikdiena

Lielākā daļa “mistisku” kļūdu web projektos ir tiesību un īpašnieku problēmas. ls -l parāda īpašnieku un atļaujas, bet chown un chmod tās maina. Atcerieties principu: dodiet minimāli nepieciešamās tiesības. Parasti web failiem nav vajadzīgs 777. Ja neesat pārliecināts, vispirms pārbaudiet, ar kādu lietotāju darbojas web serveris (piem., www-data), un pielāgojiet īpašnieku atbilstoši.

ls -l /var/www/site
chown -R www-data:www-data /var/www/site
find /var/www/site -type d -exec chmod 755 ātra piekļuve serverim ar maksimālo saita noslodzi, ideāli piemērots apmeklētājiem no visas pasaules! ;
find /var/www/site -type f -exec chmod 644 ātra piekļuve serverim ar maksimālo saita noslodzi, ideāli piemērots apmeklētājiem no visas pasaules! ;

Ja vajag strādāt kā administrators, izmantojiet sudo un nelogojieties kā root ikdienā. Tas atstāj audita pēdas un samazina risku. Vienlaikus pierodiet pie tā, ka katra administratīvā komanda ir “līgums” ar sekām: pirms apstiprināt, pārskatiet ceļu un parametrus. Šī disciplīna ir īpaši svarīga, ja serverī ir vairāki projekti vai klientu dati.

Īss “špikeris” ātrai diagnostikai

Ja jums ir tikai 2–3 minūtes, lai saprastu “kas notiek”, izmantojiet secību: (1) uptime un top — slodze un procesi, (2) df -h — vai disks nav pilns, (3) systemctl status — vai serviss ir dzīvs, (4) tail — pēdējās kļūdas, (5) curl -I — ko redz klients. Šis minimums bieži dod atbildi, kur rakt tālāk, un palīdz korekti noformulēt atbalsta pieprasījumu.

Komandrinda kļūst īpaši vērtīga, kad jūs kombinējat šīs komandas ar vienkāršu monitoringu un automatizāciju (cron, skripti, brīdinājumi). Jo stabilāka ir infrastruktūra un jo skaidrāks ir process, jo retāk būs “ugunsgrēki”. Un pat ja tie notiek, ar pareizajiem rīkiem jūs tos nodzēsīsiet ātrāk.

Kopsavilkums: komandas, kas dod vislielāko atdevi

Ja jums jāizvēlas tikai dažas komandas, kas sedz 80% ikdienas, tās parasti ir: ls/cd, find, less/tail -f, grep, df/du, top, systemctl, journalctl, ss un curl. Iemācieties tās droši, izprotiet tipiskos parametrus un veidojiet ieradumu dokumentēt izmaiņas. Tad servera pārvaldība kļūst prognozējama, un jebkurš incidents — daudz mazāk biedējošs.