88 lines
1.6 KiB
Bash
Executable File
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/"
|