logrotate per dimensione - devo cambiare il cron?


10

La mia attuale configurazione di logrotate è simile a questa (usando logrotate 3.8.7)

"/var/log/haproxy.log" {
  daily
  size 250M
  rotate 1
  create 644 root root
  missingok
  compress
  notifempty
  copytruncate
}

Funziona con successo una volta al giorno, ma quando le dimensioni superano 250M non viene ruotato. Quindi aspetta fino alla fine della giornata per ruotare, indipendentemente dalle dimensioni.

Ho letto che c'è la possibilità maxsize, e dopo aver cambiato size 250Mper maxsize 250Mnon fa ancora lavoro.

Devo impostare un cron per eseguire logrotate in modo orario, oppure logrotate viene eseguito automaticamente perché sta ascoltando quella dimensione del file e ho qualcosa di sbagliato?

Risposte:


7

Sì, è necessario eseguire logrotatepiù di una volta al giorno per raggiungere questo obiettivo. Questa è la risposta nel secondo paragrafo della pagina man logrotate(8) :

Normalmente, logrotateviene eseguito come cron job giornaliero. Non modificherà un registro più volte in un giorno a meno che il criterio per quel registro non si basi sulle dimensioni del registro e logrotatevenga eseguito più volte al giorno o a meno che non venga utilizzata l' opzione -fo --force.

Se desideri eseguire logrotateogni ora anziché ogni giorno, puoi spostarlo:

mv /etc/cron.daily/logrotate /etc/cron.hourly

Dal 3.8.1 c'è stato maxsize. La differenza tra sizee maxsizeè descritta qui:

maxsize dimensione

File di log vengono ruotati quando crescono più grandi di dimensioni byte anche prima che l'intervallo di tempo specificato in aggiunta ( daily, weekly, monthly, o yearly). L' sizeopzione correlata è simile, tranne per il fatto che si escludono a vicenda con le opzioni dell'intervallo di tempo e provoca la rotazione dei file di registro senza tener conto dell'ultimo tempo di rotazione. Quando maxsizeviene utilizzato, vengono considerati sia la dimensione che la data / ora di un file di registro.

Ciò renderebbe entrambi adatti al tuo uso: sizesenza alcun intervallo e maxsizese è necessario anche l'intervallo. Tuttavia, ciò non cambia il fatto che per impostazione predefinita logrotateviene eseguito solo quotidianamente. Tale intervallo è adatto per la maggior parte, poiché nella maggior parte dei casi ci vuole molto più tempo di un giorno perché un registro cresca 250M.


1
Cordiali saluti, esiste una direttiva maxsize, a partire dalla 8.1: hpux.connect.org.uk/hpux/Sysadmin/logrotate-3.8.7/…
Hommer Smith,

Grazie per aver notato che stavo leggendo una versione antica del manuale, @HommerSmith! Ho corretto la mia risposta di conseguenza.
Esa Jokinen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.