Logrotate non ruota il file dopo che la dimensione del file supera il limite.


9

Dalla pagina man di logrotate.

Non modificherà un registro più di una volta in un giorno a meno che il criterio per quel registro non si basi sulla dimensione del registro

Secondo la pagina man, logrotate dovrebbe ruotare il file se la configurazione si basa sulla dimensione dei registri. Ma il mio file non viene visualizzato anche se la dimensione del file è maggiore di 100k.

Qualcuno può indicare qual è il problema.

La mia configurazione

/home/jetech/work/lampstack-5.3.9-0/apache2/logs/access_log  {
    copytruncate
    compress
#    dateext
    rotate 365
    size 100k
    olddir /home/jetech/work/lampstack-5.3.9-0/apache2/old_logs
    notifempty
    nomail
    missingok
}

Risposte:


17

Come fai a sapere se il file non viene ruotato?

Su un Debian 6 Linode che ho, nella configurazione predefinita logrotateera programmato per cronessere eseguito solo una volta al giorno, e in un momento molto strano. Se eseguito solo una volta al giorno, naturalmente avrà solo un'opportunità al giorno per esaminare la configurazione, fare i confronti ed eseguire le rotazioni richieste.

Quindi, sei sicuro di eseguire effettivamente il tuo logrotate? Potrebbe voler controllare il tuo /etc/cron*e /etc/cron*/*vedere quando e con quale frequenza è pianificato l'esecuzione di logrotate.

Ad esempio, se lo logrotatescript è presente in /etc/cron.daily, allora potresti volerlo spostare /etc/cron.hourlyo, se ogni ora non è abbastanza buono, creare un file /etc/cron.d/con il seguente contenuto, da eseguire logrotateogni 10 minuti:

*/10  *  *  *  *   root    /usr/sbin/logrotate /etc/logrotate.conf

0

Quindi logrotatefunziona davvero così,

  • Nella configurazione specifichiamo una frequenza di funzionamento ( giornaliera , oraria , mensile )
  • Esiste una voce /etc/cron.xxxper l'esecuzione di logrotate .
  • logrotate viene eseguito tramite crontab

se hai menzionato quotidianamente , ogni giorno alla quantità di tempo specificata (/ etc / crontab), il processo crontab eseguirà il processo logrotate per la rotazione. Pertanto, il limite della dimensione del file non funzionerà poiché il processo non verrà mai eseguito.

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.