Logrotate на VPS: ротация логов и освобождение диска

VDS / VPS серверы · 19.04.2026
Logrotate на VPS: ротация логов и освобождение диска

Логи сервера растут непрерывно. Без ротации они заполнят весь диск. Logrotate автоматически сжимает, архивирует и удаляет старые лог-файлы по расписанию.

Проверить существующие правила

# Посмотреть все конфиги logrotate
ls /etc/logrotate.d/

# Протестировать без реальной ротации
sudo logrotate --debug /etc/logrotate.conf

Создать правило для своего приложения

# /etc/logrotate.d/myapp
/var/log/myapp/*.log {
    daily           # Ротация каждый день
    missingok       # Не ошибаться если файл отсутствует
    rotate 14       # Хранить 14 архивов
    compress        # Сжать gzip
    delaycompress   # Не сжимать последний архив
    notifempty      # Не ротировать пустые файлы
    create 0640 www-data www-data  # Права нового файла
    postrotate
        systemctl reload nginx > /dev/null 2>&1 || true
    endscript
}

Параметры logrotate

ПараметрОписание
daily/weekly/monthlyПериод ротации
rotate NКоличество архивов
size 100MРотация по размеру
compressСжать gzip
maxage 30Удалять архивы старше 30 дней
sharedscriptspostrotate выполняется один раз

Принудительная ротация прямо сейчас

sudo logrotate --force /etc/logrotate.d/myapp
✅ Logrotate запускается ежедневно через cron (/etc/cron.daily/logrotate). Обычно ничего дополнительно настраивать не нужно.

Освобождение места от старых логов

# Найти большие лог-файлы
sudo find /var/log -name "*.log" -size +100M

# Очистить файл без удаления (процесс продолжает писать)
sudo truncate -s 0 /var/log/nginx/access.log

# Или через journald
sudo journalctl --vacuum-size=500M
← Назад в базу знаний Задать вопрос поддержке