Mustand: sisu ei ole veel tehniliselt ega keeleliselt täielikult kontrollitud ega toimetatud.

Peatüki vaade

Linux/Unix/macOS käsurea kiirõpik

Praegu loed peatükki Logid ja teenused, mis kuulub osasse Osa III: Failid, võrk ja süsteemitöö.

Logid ja teenused

Loogika

Kui mõni teenus ei tööta, alusta kahest küsimusest:

  1. kas teenus üldse töötab
  2. mida logid selle kohta ütlevad

Teenuse seisu vaatad tavaliselt systemctl abil. Vea põhjuse otsimiseks liigud edasi journalctl või logifailide juurde.

Kiirülevaade

Eesmärk on muuta “miski ei tööta” kontrollitavaks küsimuseks: kas teenus töötab ja mida logi ütleb.

KäskMilleksMida tavaliselt näed
systemctl status nimiküsi teenuse seisuaktiivsus, käivitus ja viimased teated
journalctl -u nimivaata teenuse journalijärjest logiridu
journalctl -n 50vaata viimaseid kirjeidviimased 50 logirida
tail -n 50 failvaata logifaili lõppufaili viimased read
tail -f failjälgi logi reaalajaskäsk jääb uusi ridu ootama

Logides on sageli kõige kasulikumad sõnad ERROR, WARN, failed, denied ja timeout.

Tüüpilised algaja vead

  • loetakse kohe logi, ilma et teenuse seis üle kontrollitaks
  • vaadatakse vale teenuse nime, näiteks ssh vs sshd
  • unustatakse, et tail -f lõpetatakse tavaliselt Ctrl-c-ga
  • otsitakse “üht õiget faili”, kuigi süsteem võib kasutada kas journal'it või tavapäraseid logifaile

Kiirspikker

  • systemctl status nimi näitab teenuse seisu
  • journalctl -u nimi näitab selle teenuse journal'i
  • journalctl -n 50 näitab viimaseid kirjeid
  • tail -f fail.log jälgib logifaili reaalajas
  • /var/log sisaldab paljusid logifaile

Käivita need käsud

Linuxis:


systemctl status ssh
journalctl -u ssh -n 50
journalctl -n 50
ls /var/log | head

Kui sul ei ole systemd-d või teenuse nimi on teine, siis vaata vähemalt logifaile:


tail -n 50 /var/log/syslog
tail -n 50 /var/log/messages

Kui tahad viimaseid ridu lehitsetavas vaates sirvida:


tail -n 50 /var/log/syslog | less

Teenus ja protsess ei ole päris sama asi

Teenuse puhul mõtle nii:

  • teenus on süsteemi hallatav töö
  • protsess on selle töö jooksev eksemplar

See tähendab, et vahel on kasulik vaadata nii teenust kui protsessi, aga alguses tasub teenuse puhul alustada just:


systemctl status nimi

systemctl status

Näide:


systemctl status ssh

See aitab näha:

  • kas teenus on aktiivne
  • kas ta käivitub süsteemi stardis
  • kas viimastes teadetes paistab mõni viga

Teenuse nimi võib süsteemiti erineda. Näiteks:

  • mõnes süsteemis on nimi ssh
  • mõnes sshd

Kui üks ei tööta, proovi teist.

journalctl

Kui teenus ei tööta, vaata viimaseid selle teenuse kirjeid:


journalctl -u ssh -n 50

See näitab viimaseid kirjeid just selle teenuse kohta.

Kasulikud variandid:


journalctl -u ssh --since today
journalctl -u ssh -f

Siin tähendab:

  • --since today näita tänaseid kirjeid
  • -f jälgi juurde tulevaid logisid

Logifailid kaustas /var/log

Mitte kõik süsteemid ei kasuta journal'it samal viisil. Väga tihti jõuad ka tavaliste logifailideni.

Näited:

  • /var/log/syslog
  • /var/log/messages
  • teenuse enda logikaust

Logide vaatamiseks on praktilised:


tail -n 50 /var/log/syslog
tail -f /var/log/syslog

Kui üks fail puudub, proovi teist. Logide nimed ei ole kõigis distributsioonides samad.

macOS-i märkus

macOS-is ei ole süsteemi teenuste maailm päris sama mis systemd-ga Linuxis.

Seal kohtad sagedamini:

  • launchd
  • käske nagu log show

Selle raamatu peatükk on teadlikult rohkem Linuxi poole kaldu, sest systemctl ja journalctl on just seal kõige kesksemad.

Praktiline kontrolljärjekord

Kui teenus ei tööta, siis alusta nii:

  1. systemctl status nimi
  2. journalctl -u nimi -n 50
  3. vaata, kas logifailis on sama vea jälg
  4. kontrolli vajadusel ka võrgupeatükist, kas teenus kuulab õigel pordil

See seob hästi kokku peatükid Võrgu põhitööriistad ja Protsessid, tööd ja signaalid.

Päris näide ilma systemd-ta: näidisfail app.log

Kui sul parasjagu ei ole käepärast Linuxi teenust koos systemctl-iga, saad sama mõtte treenimiseks kasutada näidisfaili app.log:


cp data/app.log app.log
tail -n 20 app.log

See annab kohe viimased kirjed kätte.

Kui tahad näha ainult vead:


grep ' ERROR ' app.log | tail -n 10

Kui tahad viimased kirjed enne rahulikult läbi sirvida, siis:


tail -n 50 app.log | less

Kui tahad vaadata ainult andmebaasi mooduli vigu:


grep 'module=db' app.log | grep ' ERROR '

See on väga päris töövoog:

  • esimene filter valib mooduli
  • teine filter valib vea

Päris näide: jälgi logi reaalajas

Ühes terminalis:


cp data/app.log app.log
tail -f app.log

Teises terminalis lisa paar rida:


cat >> app.log <<'EOF'
2026-04-13T21:40:00 ERROR host=tallinn-app module=api user=vilo message="manual test error"
2026-04-13T21:40:02 WARN host=tallinn-app module=api user=vilo message="manual test warning"
EOF

See on väga hea harjutus, sest siis näed oma silmaga:

  • kuidas logi kasvab
  • miks tail -f on kasulik
  • kuidas logid, protsessid ja teenused päriselus kokku käivad

Päris näide: too logi veebist oma hostilt

Kui paned õpiku andmefailid veebiserverisse, siis võid kasutada ka sellist töövoogu:


BASE_URL="https://sinu-domeen/~vilo/linux"
curl -L "$BASE_URL/data/app.log" -o app.log
grep ' ERROR ' app.log | tail -n 10

See näitab hästi, kuidas logi:

  • tuuakse alla
  • salvestatakse faili
  • filtreeritakse edasi käsureal

Minitest

  1. Vaata mõne tuntud teenuse olekut käsuga systemctl status.
  2. Vaata sama teenuse viimaseid logikirjeid.
  3. Uuri, millised logifailid sinu süsteemis /var/log all olemas on.
  4. Pane ühe lausega kirja, mis vahe on teenuse seisul ja logidel.
  5. Filtreeri data/app.log failist välja ainult ERROR read.

Peatüki täisspikker

Praktiline kasutus

Eesmärk

kui teenus ei tööta, alusta kahest küsimusest: kas teenus on üldse aktiivne ja mida logid selle kohta ütlevad

Põhikujud

  • systemctl status sshvaata seisu
  • journalctl -u ssh -n 50loe viimast logi
  • journalctl -u ssh -fjälgi teenust
  • tail -n 50 /var/log/syslogloe faili lõppu
  • tail -f /var/log/syslogjälgi faili
  • tail -n 50 /var/log/syslog | lesssirvi viimaseid ridu

Olulisemad lipud, märgid ja kiirnupud

  • statusteenuse seis
  • -u nimiüks teenus
  • -n 50viimased read
  • -fjälgi reaalajas
  • --since todayainult tänane