GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso impostare logrotate per ruotare i registri ogni ora?

A seconda del tuo sistema operativo. Alcune (tutte?) distribuzioni Linux hanno una directory /etc/cron.hourly dove puoi mettere cron job da eseguire ogni ora.

Altri hanno una directory /etc/cron.d/ . Lì puoi inserire cron-job che devono essere eseguiti come qualsiasi utente speciale con le solite impostazioni cron di una voce crontab (e devi specificare il nome utente).

Se usi uno di questi invece dello script di rotazione log standard in /etc/cron.daily/ dovresti copiare quello script lì e cp /dev/null alla posizione originale. Altrimenti verrà riattivato da un aggiornamento della patch logrotate.

Per una corretta rotazione oraria, fai attenzione anche che il dateext direttiva not impostare. In tal caso, per impostazione predefinita il primo file ruotato avrà l'estensione della data corrente come YYYYMMDD. Quindi, la seconda volta che logrotate si attiva nello stesso giorno, salta semplicemente la rotazione anche se size la soglia è stata superata.

Il motivo è che il nuovo nome del file da ruotare esiste già e logrotate non aggiunge il contenuto al vecchio file esistente. Ad esempio su RHEL e CentOS, il dateext la direttiva è fornita di default in /etc/logrotate.conf . Dopo aver rimosso o commentato quella riga, i file ruotati riceveranno semplicemente un numero progressivo come estensione fino a raggiungere rotate valore. In questo modo è possibile eseguire più rotazioni al giorno.


Solo per aggiungere alla risposta di Nils, se si cambia la posizione del logrotate script su una macchina Debian o Ubuntu, è probabilmente più sicuro usare dpkg-divert invece di copiare semplicemente il file e copiare /dev/null alla posizione originale, ad esempio:

dpkg-divert --add --rename --divert /etc/cron.hourly/logrotate /etc/cron.daily/logrotate

Un'altra opzione sarebbe l'aggiunta del comando logrotate nell'elenco crontab. Quindi verrà eseguito per ogni ora.

crontab -e

aggiungi sotto la riga nell'elenco crontab

0 * * * * /usr/sbin/logrotate /etc/logrotate.d/my-hourly-file

Linux
  1. Errore nel file Sudoers? Ecco come puoi risolverlo.

  2. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  3. Centos - Come vedere tutti i record Cron in Centos7?

  4. CentOS / RHEL:come recuperare dal file /etc/passwd cancellato

  5. CentOS / RHEL:come ruotare i file /var/log/wtmp e /var/log/btmp usando logrotate

Come impostare un Cron Job in Linux

Come posso impostare un nick predefinito per le nuove connessioni irssi?

Come posso ottenere un elenco di tutti i lavori cron pianificati sulla mia macchina?

Come posso ripristinare un chmod nella directory etc?

Come rendere effettive le modifiche alla rotazione del registro

Come configurare /etc/issues per mostrare l'indirizzo IP per eth0