Řešení 1:
Bez změny vašeho procesu logrotate sám o sobě neudělá to, co zde hledáte. Klíčový problém je v tom, že i když logrotate může používat zástupné znaky, nebude soubory považovat za jeden, pokud tak učiníte, a místo toho se pokusí otočit je všechny jednotlivě, což rozhodně NECHCETE.
Můžete to však nastavit tak, jak popisujete, pokud je nejnovější záloha vytvořena bez razítka data. Pokud proces zálohování vytvoří /root/backup.tar.gz
můžete například použít následující konfiguraci logrotate:
/root/backup.tar.gz {
rotate 5
nocompress
dateext
dateformat _%Y-%m-%d
extension .tar.gz
missingok
}
Rychlý přehled možností zde:
rotate 5
-- před smazáním ponechejte 5 otočenínocompress
-- po otočení soubory nekomprimujtedateext
-- místo zvyšování čísel použijte datum jako rozšíření rotacedateformat _%Y-%m-%d
– nastavte formát rozšíření data, který chcete použítextension .tar.gz
-- vytvořte.tar.gz
přijít po prodloužení rotacemissingok
-- pokud tam soubor, který chceme otočit, není, nedělejte si s tím starosti a pokračujte (výchozí nastavení je vyvolat chybu)
Doufám, že to pomůže!
Řešení 2:
Nemusíte k tomu používat logrotate. Stačí použít příkaz jako tento:
ls -1 /root/backup_* | sort -r | tail -n +6 | xargs rm > /dev/null 2>&1
Tento příkaz ponechá posledních 5 souborů a odstraní zbývající (pokud existují). Můžete jej použít v úloze cron.
Řešení 3:
Logrotate otáčí soubory, takže odpověď je ano - pravděpodobně, a pokud nemáte dostatečná oprávnění, umístěte je do /backup nebo tak něco. Zkontrolujte, jakou skupinu a uživatele mají rotované protokoly :-).
V logrotate jsou možnosti pro kompresi, tedy pokud NENÍ nakonfigurováno "compress" - tak to nebude zkoušet. Také ve vašem případě možnost "otočit 5".
Podívejte se do /etc/logrotate.d (nebo kdekoli, kde je to ve vašem systému uloženo)