Назад | Перейти на главную страницу

Как я могу создать задание cron для удаления двух файлов каждые 24 часа?

Я новичок в размещении своего 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