Настройка Ротации Логов

Создает и настраивает правила ротации логов для пользовательских приложений.

Опубликовано: 20.04.2024

Код

#!/bin/bash

# Log Rotation Configuration Script

if [ "$EUID" -ne 0 ]; then 
    echo "Please run as root"
    exit 1
fi

read -p "Enter application name: " APP_NAME
read -p "Enter log file path: " LOG_PATH
read -p "Rotation frequency (daily/weekly/monthly) [daily]: " FREQUENCY
FREQUENCY=${FREQUENCY:-daily}
read -p "Keep how many rotations [7]: " KEEP
KEEP=${KEEP:-7}

cat > "/etc/logrotate.d/$APP_NAME" << EOF
$LOG_PATH {
    $FREQUENCY
    rotate $KEEP
    compress
    delaycompress
    missingok
    notifempty
    create 0644 www-data www-data
    sharedscripts
    postrotate
        systemctl reload $APP_NAME > /dev/null 2>&1 || true
    endscript
}
EOF

echo "✓ Log rotation configured for $APP_NAME"
echo ""
echo "Config file: /etc/logrotate.d/$APP_NAME"
echo ""
echo "Test configuration:"
echo "logrotate -d /etc/logrotate.d/$APP_NAME"
echo ""
echo "Force rotation:"
echo "logrotate -f /etc/logrotate.d/$APP_NAME"

Использование

sudo chmod +x logrotate_setup.sh
sudo ./logrotate_setup.sh

# Test configuration
sudo logrotate -d /etc/logrotate.d/<app_name>

Теги

logrotate log management log rotation disk management