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