🔎 Drupal 7
23 янв в 22:07
# Создаем файл sudo nano /etc/logrotate.d/site # С содержимым /var/www/html/site.ru/logs/*.log { size 1M missingok rotate 999999 compress notifempty create 0640 www-data adm sharedscripts # Включаем расширение даты в имени файла dateext dateformat -%Y-%m-%d_%H-%M-%S postrotate # Определяем переменные даты для создания пути YEAR=$(date +%Y) MONTH=$(date +%m) ARCHIVE_DIR="/var/www/html/site.ru/logs/archive/$YEAR/$MONTH" # Создаем директорию, если её нет mkdir -p $ARCHIVE_DIR # Перезапускаем nginx, чтобы он начал писать в новые файлы if [ -f /var/run/nginx.pid ]; then kill -USR1 `cat /var/run/nginx.pid` fi # Перемещаем ротированные файлы (с датой в имени) в архивную папку # Исключаем текущие .log файлы и уже сжатые архивы, если нужно find /var/www/html/site.ru/logs/ -maxdepth 1 -name "*.log-*" -exec mv {} $ARCHIVE_DIR/ \; endscript } # Перенастраиваем таймер на ежечасную ротацию sudo systemctl edit logrotate.timer # Вставляем туда [Timer] OnCalendar= OnCalendar=hourly AccuracySec=1m # перезагружаем sudo systemctl daemon-reload sudo systemctl restart logrotate.timer # проверяем таймер systemctl list-timers logrotate.timer # тестируем ротацию sudo logrotate -d /etc/logrotate.d/site
Dimaseo