x numero di file di compressione modificata di giorni - logrotate
Domanda
C'è un modo per ottenere logrotate solo ai file comprimere modificato un numero X di giorni fa (per esempio mtime +2)
Soluzione
Si può usare delaycompress aspettare un ciclo di più. In pratica se si ruota al giorno, allora manterrà ieri registra non compresso.
Oltre a questo si potrebbe provare a non usare logrotate per comprimere i file e scrivere uno script bash per correre come una volta al giorno e comprimere tutti i file più vecchi di una certa data.
Ecco un tutorial per bash che io personalmente come: http://www.linuxconfig.org/Bash_scripting_Tutorial
Altri suggerimenti
Una possibilità potrebbe essere quella di utilizzare logrotate
per ruotare ad una diversa estensione, quindi utilizzare logrotate
per ruotare in file compressi:
/var/log/raw.log {
daily
nocompress
extension .old
}
/var/log/*.old {
daily
compress
delaycompress
rotate 10
}
Questo aggeggio di Rube Goldberg comporterà la seguente:
raw.log
raw.log.old
raw.log.old.1
raw.log.old.2.gz
raw.log.old.3.gz
In questo modo si hanno due giorni archiviate dei tronchi che sono non compresso.
Puoi fare qualcosa di simile a quanto segue?
/var/log/access.log {
daily
nocompress
}
/var/log/access.7.log {
daily
compress
}
Credo che vi darà qualcosa di simile
access.log
access.1.log
access.2.log
access.3.log
access.4.log
access.5.log
access.6.log
access.7.log.gz
access.8.log.gz
access.log