È possibile eseguire manualmente un'iterazione di logrotate senza programmarlo su un intervallo?
È possibile eseguire manualmente un'iterazione di logrotate senza programmarlo su un intervallo?
Risposte:
Sì: logrotate --force $CONFIG_FILE
--force
ruoterà il / i file / i anche se non soddisfano i criteri specificati come dimensione minima, età, ecc.
logrotate --force /etc/logrotate.d/
(solo il nome della directory)
--force
forzerà la rotazione anche se i file non soddisfano i criteri (età, dimensione, ecc.), Ma tieni presente che questo è l'unico modo per individuare i problemi reali che logrotate -d
non emergerebbero (ad esempio, se il server si stava esaurendo lo spazio a causa del logrotate non funzionava da mesi ... e grazie a --force
ho capito che c'erano degli File exists
errori. Ho cancellato manualmente quei file e ora la rotazione funziona di nuovo correttamente!
logrotate -d [your_config_file]
invoca la modalità debug, dandoti una descrizione dettagliata di ciò che accadrebbe, ma lasciando intatti i file di registro.
logrotate --force
e funziona bene.
Se si desidera eseguire forzatamente una singola directory specifica o i file di registro del daemon, di solito è possibile trovare la configurazione /etc/logrotate.d
e funzioneranno autonomamente.
Tieni presente che la configurazione globale specificata in /etc/logrotate.conf
non verrà applicata, quindi in questo caso dovresti assicurarti di specificare tutte le opzioni desiderate nel /etc/logrotate.d/[servicename]
file di configurazione.
Puoi provarlo con -d
per vedere cosa sarebbe successo:
logrotate -df /etc/logrotate.d/nginx
Quindi puoi eseguire (usando nginx come esempio):
logrotate -f /etc/logrotate.d/nginx
E i soli registri nginx verranno ruotati.
logrotate -d /etc/logrotate.conf
verrà eseguito anche su tutti gli altri file conf inclusi.
Il modo per eseguire tutto logrotate è:
logrotate -f /etc/logrotate.conf
che eseguirà il file logrotate primario, che include anche le altre configurazioni logrotate
Immettere il comando seguente, il modo per eseguire logrotate specificato:
logrotate -vf /etc/logrotate.d/custom
Opzioni:
-v: mostra il processo
-f: corsa forzata
personalizzato: impostazione registro definita dall'utente
ad es .: mongodb-log
# mongodb-log rotate
/data/var/log/mongodb/mongod.log {
daily
dateext
rotate 30
copytruncate
missingok
}
modificare /var/lib/logrotate.status per ripristinare la data dell'ultima rotazione sul file di registro che si desidera verificare.
Quindi corri logrotate YOUR_CONFIG_FILE
.
Oppure puoi usare il flag --force, ma la modifica di logrotate.status ti dà più precisione su ciò che fa e non viene ruotato.
/var/lib/logrotate.status
file non esiste su Debian Squeeze.
Creato uno script di shell per risolvere il problema.
http://www.ict.griffith.edu.au/anthony/software/#logrotate_one
Questo script eseguirà solo il singolo file di sub-configurazione logrotate trovato in "/etc/logrotate.d", ma includerà le impostazioni globali nel file di configurazione globale "/etc/logrotate.conf". Puoi anche usare altre otpioni per testarlo ...
Per esempio...
logrotate_one -d syslog