logrotate pakken tillater automatisk rotasjon, komprimering, fjerning og utsendelse av loggfiler.
Denne pakken er kjent for å bygge og fungere riktig ved å bruke en LFS 12.1 plattform.
Nedlasting (HTTP): https://github.com/logrotate/logrotate/releases/download/3.21.0/logrotate-3.21.0.tar.xz
Nedlasting MD5 sum: 6c15f45efc3475a576c4f7e6cc481b2c
Nedlastingsstørrelse: 164.5 KB
Estimert diskplass som kreves: 2.9 MB (legg til 38 MB for tester)
Estimert byggetid: mindre enn 0.1 SBU (legg til 0.2 SBU for tester)
En MTA (kjøretid)
Installer logrotate ved å kjøre følgende kommandoer:
./configure --prefix=/usr && make
For å teste resultatene, kjør: make test. En test mislykkes fordi den svært gamle compress ikke er tilstede og to tester mislykkes hvis en MTA ikke er installert.
Nå, som root
bruker:
make install
Logrotate trenger en
konfigurasjonsfil, som må sendes som et argument til kommandoen når
den utføres. Opprett filen som root
bruker:
cat > /etc/logrotate.conf << EOF
# Begin /etc/logrotate.conf
# Rotate log files weekly
weekly
# Don't mail logs to anybody
nomail
# If the log file is empty, it will not be rotated
notifempty
# Number of backups that will be kept
# This will keep the 2 newest backups only
rotate 2
# Create new empty files after rotating old ones
# This will create empty log files, with owner
# set to root, group set to sys, and permissions 664
create 0664 root sys
# Compress the backups with gzip
compress
# No packages own lastlog or wtmp -- rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
/var/log/lastlog {
monthly
rotate 1
}
# Some packages drop log rotation info in this directory
# so we include any file in it.
include /etc/logrotate.d
# End /etc/logrotate.conf
EOF
chmod -v 0644 /etc/logrotate.conf
Nå opprett /etc/logrotate.d
mappen
som root
bruker:
mkdir -p /etc/logrotate.d
På dette tidspunktet kan det vanligvis legges inn ekstra
loggrotasjonskommandoer i /etc/logrotate.d
mappen. For eksempel:
cat > /etc/logrotate.d/sys.log << EOF
/var/log/sys.log {
# If the log file is larger than 100kb, rotate it
size 100k
rotate 5
weekly
postrotate
/bin/killall -HUP syslogd
endscript
}
EOF
chmod -v 0644 /etc/logrotate.d/sys.log
Du kan angi flere filer i en oppføring:
cat > /etc/logrotate.d/example.log << EOF
file1
file2
file3 {
...
postrotate
...
endscript
}
EOF
chmod -v 0644 /etc/logrotate.d/example.log
Du kan bruke listen over filer på samme linje: fil1 fil2 fil3. Se logrotate man siden eller https://www.techrepublic.com/article/manage-linux-log-files-with-logrotate/ for flere eksempler.
Kommandoen logrotate
/etc/logrotate.conf kan bli kjørt manuelt, men
kommandoen bør kjøres daglig. Andre nyttige kommandoer er
logrotate -d
/etc/logrotate.conf for feilsøkingsformål og
logrotate -f
/etc/logrotate.conf for å tvinge logrotate
kommandoer som skal kjøres umiddelbart. Kombiner de tidligere
alternativene -df
, du kan feilsøke
effekten av tvangkommandoen. Ved feilsøking simuleres kommandoene
bare og kjøres faktisk ikke. Som et resultat vil feil om filer som
ikke eksisterer til slutt vises fordi filene faktisk ikke er
opprettet.
For å kjøre logrotate
kommandoen daglig, kjør følgende
kommandoer, som root
bruker, for å
opprette en systemd tidtaker som går daglig
kl. 03.00. (lokal tid):
cat > /usr/lib/systemd/system/logrotate.service << "EOF" &&[Unit] Description=Runs the logrotate command Documentation=man:logrotate(8) DefaultDependencies=no After=local-fs.target Before=shutdown.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/sbin/logrotate /etc/logrotate.conf
EOF cat > /usr/lib/systemd/system/logrotate.timer << "EOF" &&[Unit] Description=Runs the logrotate command daily at 3:00 AM [Timer] OnCalendar=*-*-* 3:00:00 Persistent=true [Install] WantedBy=timers.target
EOF systemctl enable logrotate.timer