Ученик (105)

Как сделать, чтобы Apache архивировал логи на VPS/VDS? А то они увеличиваются в размере...

Скоро, я чувствую, займут все оставшееся место на диске :(
Регистрируйтесь, делитесь ссылками в соцсетях, получайте на WMR кошелек 20% с каждого денежного зачисления пользователей, пришедших на проект по Вашей ссылке. Подробнее
ОТВЕТЫ
Знаток (425)
Если сервер типа IIS (ОС Винда) - не знаю. Рассказываю для Linux.

Запускаете по CRON специальный скрипт (назовем его cron_flush_log.sh и находится он в папке /cronscripts):


datevar = $(date +%F) #объявили переменную в формате YYYY-MM-DD
cd "/etc/httpd/logs" #перешли в папочку в логами Апача...
tar -cf "access_log_$datevar.tar" "access_log" #затарили лог в архив
gzip "access_log_$datevar.tar" #зипнули его (сжатие выше некуда!)
echo "" > "access_log" #очистили текущий лог
#удалять лог НЕЛЬЗЯ, иначе Апач прервет логирование событий - придется перезапустить
#делаем то же с логом ошибок:
tar -cf "error_log_$datevar.tar" "error_log" #затарили лог в архив
gzip "error_log_$datevar.tar" #зипнули его (сжатие выше некуда!)
echo "" > "error_log" #очистили текущий лог


Этот скрипт должен запускаться CRON-ом. Т.е. в crontab должна быть запись типа такой:


19 0 * * * sh /cronscripts/cron_flush_log.sh


Это заставит скрипт запускаться каждый день в 0 часов 19 минут.
Есть сервер типа IIC