Files
Homelab/scripts/setup_log_rotation.sh

88 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# setup_log_rotation.sh - Configure log rotation for homelab services
set -euo pipefail
echo "Configuring log rotation for homelab services..."
# Docker logs
cat > /etc/logrotate.d/docker-containers << 'EOF'
/var/lib/docker/containers/*/*.log {
rotate 7
daily
compress
size=10M
missingok
delaycompress
copytruncate
}
EOF
# Traefik logs
cat > /etc/logrotate.d/traefik << 'EOF'
/var/log/traefik/*.log {
rotate 14
daily
compress
missingok
delaycompress
postrotate
docker service update --force traefik_traefik > /dev/null 2>&1 || true
endscript
}
EOF
# fail2ban logs
cat > /etc/logrotate.d/fail2ban-custom << 'EOF'
/var/log/fail2ban.log {
rotate 30
daily
compress
missingok
notifempty
postrotate
systemctl reload fail2ban > /dev/null 2>&1 || true
endscript
}
EOF
# Restic backup logs
cat > /etc/logrotate.d/restic-backup << 'EOF'
/var/log/restic_backup.log {
rotate 30
daily
compress
missingok
notifempty
}
EOF
# Caddy logs
cat > /etc/logrotate.d/caddy << 'EOF'
/var/log/caddy/*.log {
rotate 7
daily
compress
missingok
delaycompress
}
EOF
# Home lab deployment logs
cat > /etc/logrotate.d/homelab << 'EOF'
/var/log/homelab_deployment.log {
rotate 90
daily
compress
missingok
notifempty
}
EOF
echo "Testing logrotate configuration..."
logrotate -d /etc/logrotate.d/docker-containers
echo "Log rotation configured successfully."
echo "Logs will be rotated daily and compressed."
echo "Configuration files created in /etc/logrotate.d/"