GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu nastavit logrotate, aby se protokoly střídaly každou hodinu?

V závislosti na vašem OS. Některé (všechny?) distribuce Linuxu mají adresář /etc/cron.hourly kde můžete umístit úlohy cron, které se mají provádět každou hodinu.

Ostatní mají adresář /etc/cron.d/ . Zde můžete umístit cron-úlohy, které mají být provedeny jako speciální uživatel s obvyklým nastavením cron záznamu crontab (a musíte zadat uživatelské jméno).

Pokud použijete některý z nich místo standardního skriptu pro rotaci protokolu v /etc/cron.daily/ měli byste tam zkopírovat tento skript a cp /dev/null do původní polohy. Jinak bude znovu aktivován opravou logrotate.

Pro správnou hodinovou rotaci také dbejte na to, aby dateext direktiva není soubor. Pokud ano, ve výchozím nastavení získá první otočený soubor příponu aktuálního data, například RRRRMMDD. Pak by se logrotate podruhé aktivovalo ve stejný den, jednoduše rotaci přeskočí, i když size prahová hodnota překročila.

Důvodem je, že nový název souboru, který se má otočit, již existuje a logrotate nepřipojí obsah ke stávajícímu starému souboru. Například na RHEL a CentOS je dateext direktiva je standardně uvedena v /etc/logrotate.conf . Po odstranění nebo okomentování tohoto řádku budou otočené soubory jednoduše dostávat průběžné číslo jako příponu, dokud nedosáhnou rotate hodnota. Tímto způsobem je možné provádět více rotací za den.


Jen pro doplnění k Nilsově odpovědi, pokud změníte umístění logrotate skript na krabici Debian nebo Ubuntu, je pravděpodobně bezpečnější použít dpkg-divert místo pouhého zkopírování souboru a zkopírování /dev/null do původní polohy, např.:

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

Další možností by bylo přidání příkazu logrotate do seznamu crontab. Potom se spustí každou hodinu.

crontab -e

přidat pod řádek do seznamu crontab

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

Linux
  1. Chyba v souboru Sudoers? Zde je návod, jak to můžete opravit.

  2. Jak se aktualizuje /etc/motd?

  3. Jak mohu nastavit automatické dokončování pro příkazy Git?

  1. Jak můžeme získat seznam nesystémových uživatelů na linuxu?

  2. Jak používat @reboot v /etc/cron.d

  3. Jak mohu získat seznam všech naplánovaných úloh cron na mém počítači?

  1. Jak mohu vrátit chmod v adresáři etc?

  2. Jak zajistit, aby se změny log-rotace projevily

  3. Jak nastavit /etc/issues, aby zobrazoval IP adresu pro eth0