Beetaversioon: sisu on enamasti terviklik ja avalikuks katsetamiseks valmis, kuid vajab veel tehnilist, keelelist ja kasutatavuse kontrolli.

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

Teenus on süsteemi hallatav taustatöö; selle olek ütleb, kas see töötab, logi aitab mõista juhtunut. Üks teenus võib käivitada mitu protsessi. Alusta olekust, seejärel vaata sama teenuse hiljutisi teateid.

systemd-ga Linux

Järgmised käsud vajavad systemd-d. Need ei ole macOS-i käsud ega tööta igas Linuxi konteineris või WSL-i seadistuses. systemctl uurib teenust, journalctl loeb süsteemipäevikut.

KäskMida näed
systemctl status sshteenuse olek, käivituse andmed ja viimased teated
journalctl -u ssh -n 50-u valib teenuse, -n viimaste kirjete arvu
journalctl -u ssh --since todaykirjed alates tänase päeva algusest
journalctl -u ssh -f-f jääb lisanduvaid kirjeid ootama; lõpeta Ctrl-c-ga

SSH-teenus võib olla nimega sshd, mitte ssh, või üldse paigaldamata. Asenda näites nimi oma teenusega. Unit ... could not be found ei tähenda sama mis olemasoleva teenuse failed-olek. Lehitsetavast vaatest välju q-ga.

Olek active ja käivitamisel lubatud olek enabled ei ole sama: teenus võib praegu töötada, kuid mitte järgmisel alglaadimisel. -- No entries -- ei tõesta vigade puudumist; põhjuseks võivad olla vale nimi, piiratud lugemisõigus või teistsugune logimine.

macOS kasutab teenuste halduseks launchd-d ja süsteemilogide jaoks muu hulgas käsku log show. Tavalise tekstilogiga saad mõlemas süsteemis teha järgmise katse.

Vaata logi kasvamist kahes aknas

Loo esimeses terminalis oma näidislogi. printf kirjutab ühe rea, > kirjutab samanimelise faili üle. Ära kasuta selleks päris teenuse logi.


mkdir -p ~/tmp/logi-naide
cd ~/tmp/logi-naide
printf '%s\n' 'INFO teenus käivitus' > app.log
tail -f app.log

Näed algset rida ja käsk jääb ootama. Teises terminalis kasuta täisteed, sest uus aken ei pruugi olla samas kataloogis. >> lisab lõppu, mitte ei kirjuta algust üle:


printf '%s\n' 'WARN ühendus aeglane' 'ERROR ühendus katkes' >> ~/tmp/logi-naide/app.log

Esimesse aknasse ilmuvad uued read. Katkesta seal jälgimine Ctrl-c-ga; see ei kustuta logi ega lõpeta seda kirjutanud teenust. Käsk tail -n 2 app.log näitab nüüd ainult kaht viimast rida.

Leia oluline sündmus

Päris logis on tavaliselt ajatempel, tähtsusaste ja sõnum. Märksõnad nagu ERROR, failed ja denied aitavad alustada, kuid loe ka ümbritsevaid ridu: viimane viga võib olla varasema vea tagajärg.

Otsingu peatükis õpid eraldama veakirjeid käsuga grep. Suuremat näidislogi pakub õpiku andmefail.

Süsteemi tekstilogid võivad asuda näiteks /var/log/syslog või /var/log/messages, kuid need failid ei pea sinu süsteemis olemas olema. Ära loo puuduvat süsteemilogi käsitsi ega muuda päris logide õigusi lihtsalt vaatamise hõlbustamiseks.

Minitest

  1. Lisa näidislogisse kolmas sündmus ja vaata, kuidas see esimesse aknasse ilmub.
  2. Kuidas erinevad tail -n 2 ja tail -f?
  3. Kui kasutad systemd-ga Linuxit, leia üks olemasolev teenus ja võrdle selle olekut viimaste logiteadetega.
  4. Miks ei tõesta tühi logivaade, et teenus töötab veatult?

Peatüki täisspikker

Praktiline kasutus

Eesmärk

Kontrolli teenuse olekut ja seejärel sama teenuse logi. systemctl/journalctl vajavad systemd-ga Linuxit.

Käsud ja näited

  • systemctl status sshteenuse seis ja hiljutised teated; nimi võib olla sshd
  • journalctl -u ssh -n 50selle teenuse viimased 50 kirjet
  • journalctl -u ssh --since todaytänased teenusekirjed
  • journalctl -u ssh -fjälgi juurde tulevaid kirjeid
  • tail -n 20 app.logtavalise logifaili lõpp, ka ilma systemd-ta
  • tail -f app.logjälgi faili; Ctrl-c lõpetab jälgimise