È possibile eseguire manualmente un'iterazione di logrotate senza pianificarla su un intervallo?È possibile eseguire manualmente un controllo logrotate?
risposta
Sì: logrotate --force $CONFIG_FILE
nota che '--force' ruoterà i file anche se non soddisfano i criteri specificati come minsize, age, ecc. – xofer
Se si posiziona il file di configurazione logrotate in /etc/logrotate.d/custom.conf Questo significa che non è necessario specificare una dimensione/tempo quando il registro deve ruotare automaticamente? O dovresti posizionare la configurazione in una cartella diversa se non intendi farla ruotare automaticamente? – Damainman
+1 Grazie, questo è esattamente quello che cerco – Mike
logrotate -d [your_config_file]
invoca modalità di debug, dando una descrizione dettagliata di ciò che sarebbe accaduto, ma lasciando intatti i file di log.
quelli che sono venuti qui cercano la risposta di una domanda come "come posso testare il mio logrotate conf?" può prendere questo come risposta, in quanto semplicemente TESTS conf – kommradHomer
questa dovrebbe essere la risposta accettata – storm
Il modo per eseguire tutti logrotate è:
logrotate -f /etc/logrotate.conf
che verrà eseguito il file logrotate primario, che comprende le altre configurazioni logrotate così
Si consiglia di eseguirlo in vigore verbose + modalità.
logrotate -vf /etc/logrotate.conf
Se si vuole forzare a conduzione una singola directory specifica o file di log del demone, di solito si può trovare la configurazione in /etc/logrotate.d
, e lavoreranno standalone.
Ricordare che la configurazione globale specificata in /etc/logrotate.conf
non verrà applicata, quindi se si esegue questa operazione è necessario assicurarsi di specificare tutte le opzioni desiderate nel file di configurazione /etc/logrotate.d/[servicename]
in modo specifico.
Si può provare con -d
per vedere cosa sarebbe successo:
logrotate -df /etc/logrotate.d/nginx
Quindi è possibile eseguire (usando nginx come esempio):
logrotate -f /etc/logrotate.d/nginx
E i registri nginx solo sarà ruotato.
Eseguire il seguente comando, il modo di eseguire logrotate specificato:
logrotate -vf /etc/logrotate.d/custom
Opzioni:
-v: mostrare il processo
-f: costringendo run
personalizzato: impostazione di registro definita dall'utente
ad es .: mongodb-log
# mongodb-log rotate
/data/var/log/mongodb/mongod.log {
daily
dateext
rotate 30
copytruncate
missingok
}
plus1 per fornire effettivamente un esempio completo. PS Come possiamo determinare [cosa fa effettivamente il logrotato ai file] (https://stackoverflow.com/questions/46578307/)? –
Creato uno script di shell per risolvere il problema.
http://www.ict.griffith.edu.au/anthony/software/#logrotate_one
Questo script verrà eseguito solo il file di configurazione sub-singolo logrotate trovato in "/etc/logrotate.d", ma includono le impostazioni globali da nel file di configurazione globale "/etc/logrotate.conf ". È inoltre possibile utilizzare le altre schermate per testarlo ...
Per esempio ...
logrotate_one -d syslog
modificare/var/lib/logrotate.stato per reimpostare la data dell'ultima rotazione sul file di registro che si desidera testare.
Quindi eseguire logrotate YOUR_CONFIG_FILE
.
Oppure è possibile utilizzare il flag --force, ma la modifica logrotate.status offre maggiore precisione su ciò che viene ruotato e non viene ruotato.
Il problema con logrotate è che ha un file di configurazione globale e NON consente di eseguire un singolo registro ruotare il file di configurazione secondaria mentre si applicano le opzioni impostate nel file di configurazione globale. Questo non ha un buon modo per eseguire un solo controllo del file di rotazione del registro, esattamente come se fosse eseguito ogni notte da cron. Potrebbe fare con l'opzione 'limit a questi file di registro', o meglio ancora, 'eseguire la configurazione globale, ma includere solo questo file di sotto-configurazione'. – anthony