Почему бы не использовать logrotate
(man
страницу)?
Похоже, это именно то, что вы ищете:
logrotate предназначен для упрощения администрирования систем, которые генерируют большое количество файлов журналов. Это позволяет автоматически вращать, сжимать, удалять и отправлять файлы журналов по почте. Каждый файл журнала может обрабатываться ежедневно, еженедельно, ежемесячно или когда он становится слишком большим.
Обычно logrotate запускается как ежедневное задание cron. Он не будет изменять журнал несколько раз в течение одного дня, если критерий для этого журнала не основан на размере журнала, а logrotate запускается несколько раз каждый день, или если не используется опция -f или --force.
В командной строке может быть указано любое количество файлов конфигурации. Более поздние файлы конфигурации могут переопределять параметры, указанные в более ранних файлах, поэтому важен порядок, в котором перечислены файлы конфигурации logrotate.
Обычно следует использовать один файл конфигурации, который включает любые другие файлы конфигурации, которые необходимы. См. Ниже для получения дополнительной информации о том, как использовать директиву include для достижения этой цели. Если в командной строке указан каталог, каждый файл в этом каталоге используется как файл конфигурации.
Если аргументы командной строки не указаны, logrotate напечатает версию и информацию об авторских правах, а также краткую сводку об использовании. Если во время ротации журналов возникнут какие-либо ошибки, logrotate выйдет с ненулевым статусом.