Самый первый скрипт ротации логов был очень примитивным и непрактичным.
Началось все с того что в один прекрасный день в директории /var закончилось место и сервер начал сбоить. В процессе выяснения кто скушал все свободное место виновником оказались логи веб сервера Apache. На один из виртуальных хостов в течении недели была сильная атака спам-ботов что призвело до ужасно быстрого разростания обьема access_log.
Руководствуясь первой примитивной потребностью хоть как-то защитить веб сервер от подобных инцидентов я написал скриптик который 1 раз в неделю обнулял лог файлы по виртуальным хостам.
Как Вы сами понимаете это очень примитивно и неправильно. Отсутсвовала полноценная ротация логов, а вместо него простое очищение файла в определенное время. Уже тогда я прекрасно понимал что это не выход их ситуации.
И вот только сейчас я вернулся к данной проблеме и теперь имею новый скрипт ротации логов веб сервера Apache. На этот раз скрипт запускается как и прежде по крону 1 раз в неделю, но уже не просто удаляет безвозвратно логи, а архивирует их и сохраняет в специально заданный каталог. К тому же появилась удобная возможность конфигурировать пути расположения для каждого вирутального хоста в отдельности.
Из недостатков и наработок на будущее:
- по прежнему нету полного понятия ротации логов. Файлы складываются срезами в период 1 неделя до бесконечности. В следующих версиях нужно реализовать полную ротацию с возможностью указания периода хранения старых лог файлов
- было бы удобно если бы настройки читались с SQL базы




