logrotate: kein -gz bei leeren logs

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
mclien
Beiträge: 2468
Registriert: 06.12.2005 10:38:46
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Baustelle

logrotate: kein -gz bei leeren logs

Beitrag von mclien » 10.01.2018 16:49:32

Ich lasse auf einem Server per cron die logs rotieren und nutze folgendes rotate.conf file dazu:

Code: Alles auswählen

/pfad/zur/logdatei.log {
    dateext
    rotate 7
    olddir old
    copytruncate
    compress
    missingok
soweit so gut. Jeden Tag kappen und wegcopiern, 7 tage aufheben im unterordner "old".
Das geht soweit ganz gut, allerdings nur, wenn etwas im log drinsteht. Ist es leer, wird kein compress ausgeführt. Ausserdem sammeln sich mehr als 7 Versionen des logs. Ich vermute mal, dass liegt daran, dass keine "gleichen namen i Folge vorliegen, so wie hier:

Code: Alles auswählen

atlassian-jira.log-20171224
log-20171226
log-20171227
log-20171228
log-20171230
log-20171231.gz
log-20180101
log-20180102
log-20180103
log-20180104.gz
log-20180105.gz
log-20180106.gz
log-20180107.gz
die mit *.gz haben halt Inhakt und die ohne sind 0bite groß

Gibt es irgendeine Ergänzung für die rotate.conf, dass auch leere logs compressed werden? /Ja, mir ist schon klar, dass sie dann größer werden, aber wichtiger ist, dass zuverlässig nur 7 Versionen da sind.

pferdefreund
Beiträge: 3799
Registriert: 26.02.2009 14:35:56

Re: logrotate: kein -gz bei leeren logs

Beitrag von pferdefreund » 11.01.2018 10:38:14

ein echo "Pseudosatz" >> logdatei sollte das schon beheben. Das einfach direkt vor dem Logrotate laufen lassen und gut ist.
Wichtig hierbei die >> - sonst ist der Rest im Nirvana.

mclien
Beiträge: 2468
Registriert: 06.12.2005 10:38:46
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Baustelle

Re: logrotate: kein -gz bei leeren logs

Beitrag von mclien » 11.01.2018 13:03:10

Da hatte ich auch schon dran gedacht, war aber noch auf der Suche ob man das direkt in der config einstellen kann; Bspw. sowas wie ein "force compress". Aber wahrscheinlich mache ich das dann mit nem pseudolog.

uname
Beiträge: 12396
Registriert: 03.06.2008 09:33:02

Re: logrotate: kein -gz bei leeren logs

Beitrag von uname » 11.01.2018 13:46:22

Vielleicht kannst du ja regelmäßig die leeren Dateien löschen lassen:

Code: Alles auswählen

find /pfad -type f -empty -delete
Alternativ kannst du dir noch die Option "notifempty" von logrotate anschauen.

Benutzeravatar
Taomon
Beiträge: 627
Registriert: 08.03.2011 16:34:38
Lizenz eigener Beiträge: GNU Free Documentation License

Re: logrotate: kein -gz bei leeren logs

Beitrag von Taomon » 09.03.2018 00:10:28

Setzt die option

Code: Alles auswählen

ifempty
Laut Manpage sollte das eigentlich default sein. Vielleicht weiß das logrotate bloß nicht. :D

Taomon
Bitte gelegentliche Schreibfehler übersehen. Ich habe ADHS. Danke.

Antworten