GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je configurer logrotate pour faire pivoter les journaux toutes les heures ?

Selon votre système d'exploitation. Certaines (toutes ?) distributions Linux ont un répertoire /etc/cron.hourly où vous pouvez mettre des tâches cron à exécuter toutes les heures.

D'autres ont un répertoire /etc/cron.d/ . Vous pouvez y placer des tâches cron qui doivent être exécutées en tant qu'utilisateur spécial avec les paramètres cron habituels d'une entrée crontab (et vous devez spécifier le nom d'utilisateur).

Si vous utilisez l'un ou l'autre à la place du script de rotation de journal standard dans /etc/cron.daily/ vous devriez copier ce script ici et cp /dev/null à la position d'origine. Sinon, il sera réactivé par une mise à jour de patch logrotate.

Pour une bonne rotation horaire, veillez également à ce que le dateext directive n'est pas Positionner. Si tel est le cas, par défaut, le premier fichier pivoté recevra l'extension de la date actuelle telle que AAAAMMJJ. Ensuite, la deuxième fois que logrotate deviendrait actif dans la même journée, il ignore simplement la rotation même si le size le seuil a été dépassé.

La raison en est que le nouveau nom du fichier à faire pivoter existe déjà et que logrotate n'ajoute pas le contenu à l'ancien fichier existant. Par exemple sur RHEL et CentOS, le dateext la directive est donnée par défaut dans /etc/logrotate.conf . Après avoir supprimé ou commenté cette ligne, les fichiers pivotés recevront simplement un numéro courant comme extension jusqu'à atteindre le rotate évaluer. De cette façon, il est possible d'effectuer plusieurs rotations par jour.


Juste pour ajouter à la réponse de Nils, si vous changez l'emplacement du logrotate script sur une boîte Debian ou Ubuntu, il est probablement plus sûr d'utiliser dpkg-divert au lieu de simplement copier le fichier et copier /dev/null à la position d'origine, par exemple :

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

Une autre option serait d'ajouter la commande logrotate dans la liste crontab. Ensuite, il s'exécutera toutes les heures.

crontab -e

ajouter la ligne ci-dessous dans la liste crontab

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

Linux
  1. Centos - Comment voir tous les enregistrements Cron dans Centos7 ?

  2. Comment /etc/motd est-il mis à jour ?

  3. Comment pouvons-nous obtenir la liste des utilisateurs non-système sous Linux ?

  4. Comment utiliser @reboot dans /etc/cron.d

  5. Comment obtenir une liste de toutes les tâches cron planifiées sur ma machine ?

Comment configurer une tâche Cron sous Linux

Comment mettre en place une tâche cron pour lancer un exécutable toutes les heures ?

Comment puis-je configurer la saisie semi-automatique pour les commandes Git ?

Comment définir JAVA_HOME sous Linux pour tous les utilisateurs

Comment puis-je exécuter SSH sur un port autre que 22 ?

Comment définir un pseudo par défaut pour les nouvelles connexions irssi ?