Hier ein paar Befehle zum Herumspielen:
tail -f /var/log/homebridge.log zeigt dir das Log und seine Updates in Echtzeit. Abbruch mit ctrl-c oder strg-c
wc -l /var/log/homebridge.log zeigt dir, wieviele Zeilen das Log hat
grep Scheduling /var/log/homebridge.log | wc -l zeigt dir, wieviele Zeilen davon das Wort Scheduling enthalten
ls -lh /var/log/homebridge.log zeigt dir die Größe des Logs
So. Du kannst deine Logs "rotieren" lassen. Das bedeutet, dass das Programm logrotate sich ihrer annimmt und damit was Schönes macht:
1. es beendet das Loggen in eine Datei, nennt sie um und beginnt das Schreiben in eine neue Datei
2. es komprimiert alte Logs nach einer Weile
3. es löscht alte Logs nach einer Weile
Ein ls -l /var/log/homebridge.log* könnte so etwas bei dir anzeigen:
pi@raspberrypi:/etc/logrotate.d $ ls -l /var/log/homebridge.log*
-rw-r--r-- 1 root adm 91909 Mar 5 21:21 /var/log/homebridge.log
-rw-r--r-- 1 root adm 2346637 Mar 5 06:22 /var/log/homebridge.log.1
-rw-r--r-- 1 root adm 250440 Feb 25 06:12 /var/log/homebridge.log.2.gz
-rw-r----- 1 root adm 87000 Feb 5 06:10 /var/log/homebridge.log.3.gz
-rw-r----- 1 root adm 52390 Jan 29 06:18 /var/log/homebridge.log.4.gz
pi@raspberrypi:/etc/logrotate.d $
Man sieht die Datei homebridge.log. Das ist die aktuelle Logdatei, in die gerade alles mögliche hinein geschrieben wird. Die Datei homebridge.log.1 ist eine ältere Logdatei. Sie hört dort auf, wo die aktuelle beginnt. Die restlichen Dateien mit der Endung .gz sind noch ältere Logs, die dort aufhören, wo die nächste anfängt, und die inzwischen komprimiert wurden. Sie sind von 1-4 durchnummeriert. Bevor die Nummer 4 zur Nummer 5 werden kann, wird sie ganz automatisch gelöscht.
Das wird alles von logrotate erledigt, und das nicht nur für eine Datei, sondern für viele andere. Machst du ein
ls -l /var/log
dann siehst du andere Logs, die nichts mit homebridge zu tun haben und die ebenfalls durchnummeriert sind. Auch hier war logrotate am Werk.
Wenn deine homebridge.log-Dateien schon eine solche Nummerierung haben wie im Beispiel dargestellt, dann musst du nichts weiter unternehmen. Falls nicht, musst du logrotate konfigurieren.
Dazu musst du entweder eine neue Konfigurationsdatei anlegen oder du machst es dir leicht und verwendest eine vorhandene. Die folgende Anleitung verwendet eine vorhandene logrotate-Konfigurationsdatei. Also auf geht's:
sudo nano /etc/logrotate.d/rsyslog
Du siehst etwas Ähnliches wie bei mir:
/var/log/syslog
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/sonos-http-api-master.log
/var/log/messages
{
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}
Alles anzeigen
Das wird so gelesen:
1. Zeile /var/log/syslog
Mit dieser Datei soll alles das gemacht werden, was in den geschweiften Klammern dahinter steht:
daily rotieren, 7 Versionen davon aufheben, komprimieren und weiteres Zeugs. Uns hier völlig wurscht. Geschweifte Klammer zu.
Weiter unten kommt eine ganze Liste von Dateien, beginnend mit /var/log/mail.info und endend mit /var/log/messages. Diese Liste kann bei dir anders aussehen. Aber hier setzen wir an. Der Inhalt zwischen den geschweiften Klammern sagt diesmal, dass wöchentlich rotiert werden soll und vier Versionen aufgehoben werden sollen.
Setze nun einfach hinter /var/log/messages und vor die öffnende geschweifte Klammer { deine homebridge.log ein. Sieht dann so aus:
.
.
.
/var/log/cron.log
/var/log/debug
/var/log/messages
/var/log/homebridge.log
{
rotate 4
weekly
missingok
.
.
.
Alles anzeigen
Alles andere lässt du so, wie es ist. Ich hab die Darstellung nur ein bisschen verkürzt, damit du das besser sehen kannst. Also: da sollen nicht diese Punkte rein, sondern es soll nur der Dateiname /var/log/homebridge zusätzlich eingetragen werden.
Speichern. Fertig. Das war's. Logrotate wird täglich ausgeführt, aber du kannst das auch manuell aufrufen:
sudo /etc/cron.daily/logrotate
Viel Erfolg.
Stefan