Linuxi logifailid (või logid) on tekstifailid, mis salvestavad süsteemis või rakendustes toimuvaid sündmusi ja teateid. Neid kasutatakse süsteemi jõudluse jälgimiseks, diagnoosimiseks ja analüüsimiseks.
Logifailid võivad sisaldada teavet järgmistest andmetest:
/var/log/syslog
või /var/log/messages
: üldised süsteemisõnumid./var/log/auth.log
: Autentimisjuhtumite (sisselogimised, sudo
kasutamine jne) salvestused./var/log/kern.log: tuumasõnumid
./var/log/dpkg.log
: Pakettide paigaldamise ja eemaldamise andmed (Debianil põhinevate süsteemide puhul)./var/log/apache2/
: Apache veebiserveri logid (kui see on paigaldatud)./var/log/mysql/
: MySQL andmebaasi logid (kui on paigaldatud).Logifailide vaatamine: Logifailide sisu vaatamiseks saate kasutada käske cat
, less
, more
, tail
ja muid käske.
tail -f /var/log/syslog
See käsk näitab faili viimaseid ridu ja uuendab väljundit reaalajas.
Filtreerimine ja otsimine: Grep-komandoga
saate otsida konkreetseid ridu logides.
grep "error" /var/log/syslog
Logide rotatsioon: Logid võivad kettal palju ruumi võtta, seega kasutatakse logide rotatsiooni (nt logrotate utiliidi abil) vanade logide arhiveerimiseks ja ruumi vabastamiseks. Logifailid on süsteemiadministraatorite ja arendajate jaoks oluline vahend süsteemi töö jälgimiseks ja probleemide lahendamiseks.
Linuxis saab logifaili luua mitmel viisil, sõltuvalt sellest, kuidas soovite teavet salvestada.
Saate luua logifaili ja kirjutada sinna andmeid, kasutades käsku echo
ja suunates väljundi ümber:
echo "This message will be recorded in a log file" >> /path/to/your/logfile.log
>> adds text to the end of the file. If the file does not exist, it will be created.
Faili ülekirjutamiseks kasutage ühekordset >.
Käsk tee
võimaldab kirjutada käsu väljundit faili ja kuvada seda samal ajal terminalis:
echo "This message will be recorded in a log file" | tee -a /path/to/your/logfile.log
Märker -a tähendab "append", et vältida faili ülekirjutamist.
Saate luua Bashis
skripti, mis kirjutab sõnumeid logifaili:
#!/bin/bash
LOGFILE="/path/to/your/logfile.log"
echo "$(date): Running the script" >> "$LOGFILE"
# Your code is here
echo "$(date): Script Completion" >> "$LOGFILE"
Salvestage see kood faili, näiteks myscript.sh
, ja tehke see käivitatavaks:
chmod +x myscript.sh
Seejärel käivitage see:
./myscript.sh
Kui soovite kirjutada logisid süsteemi logidesse, näiteks syslogi
, võite kasutada käsku logger
:
logger "This message will be recorded in the system log"
See kirjutab selle teate /var/log/syslogi
või vastavasse logifaili, sõltuvalt teie süsteemi konfiguratsioonist.
Kui te kirjutate programmi sellistes keeltes nagu Python, saate kasutada sisseehitatud raamatukogusid logimisega tegelemiseks:
import logging
logging.basicConfig(filename='/path/to/your/logfile.log', level=logging.DEBUG)
logging.debug('This is a debugging message')
logging.info('This is an informational message')
logging.warning('This is a warning')
logging.error('This is an error message')
logging.critical('This is a critical message')
Need meetodid võimaldavad teil luua ja hallata logifaile Linuxis sõltuvalt teie vajadustest.