Я новичок в размещении своего VPS на сервере CentOS linux.
Следующие файлы журналов растут довольно быстро, и я хотел бы, чтобы они удаляется каждые 24 часа:
/home/httpd/tanguay.info/stats/tanguay.info-custom_log
/home/httpd/tanguay.info/stats/tanguay.info-error_log
/home/admin/__processed_stats/*
Что мне нужно сделать, чтобы создать задание cron, которое удаляет все эти файлы каждую ночь в полночь?
Не рекомендуется немедленно очищать файлы журналов, поскольку они могут понадобиться позже для отладки, статистики или отслеживания вторжений. Хотя доставка журналов за пределы сайта может быть излишней в одном сценарии VPS, есть лучшие подходы, чем простое их удаление.
Я предлагаю вам изучить logrotate или cronolog (возможно, доступен как пакет на CentOS). С помощью этих пакетов вы можете настроить правила обработки файлов журналов (обычно) ежедневно, например: хранить журналы за неделю, но сжимать их все, кроме сегодняшних.
Вы также можете уменьшить количество информации, отправляемой в журналы. Вы можете настроить регистрацию только ошибок, а не информации, предупреждений и ошибок. Просто предложение. Если вы хотите удалить журналы, убедитесь, что они все еще не используются. Поверните файлы журналов, как предлагали все остальные. Обычно они сжимаются и удаляются через некоторое время.
Logrotate - лучший метод. В любом случае вам необходимо отправить сигнал HUP на httpd после этого, иначе дескриптор файла для вашего журнала останется открытым, и ваша файловая система заполнится, но не будет отражаться в размерах файлов.
Чтобы очищать файлы каждый день в 1:00, вы можете использовать:
0 1 * * * :> /home/httpd/tanguay.info/stats/tanguay.info-custom_log
0 1 * * * :> /home/httpd/tanguay.info/stats/tanguay.info-error_log
0 1 * * * for i in `ls /home/admin/__processed_stats/`; do :> $i; done
Но хороший способ - использовать logrotate
Вы также можете взглянуть на: инструмент ротации журналов, который хранит только определенное количество журналов и отбрасывает все остальное и Ротация журнала доступа Apache