Настройка Ротации Логов
Создает и настраивает правила ротации логов для пользовательских приложений.
Опубликовано: 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>