47 lines
992 B
Bash
47 lines
992 B
Bash
#!/bin/bash
|
|
# Setup log rotation for Docker containers
|
|
# Run this script on the host system with sudo
|
|
|
|
set -e
|
|
|
|
LOGROTATE_CONF="/etc/logrotate.d/overseas-appointment"
|
|
|
|
echo "Setting up log rotation for Overseas Appointment System..."
|
|
|
|
# Create logrotate configuration
|
|
cat > "${LOGROTATE_CONF}" << 'EOF'
|
|
# Docker container logs
|
|
/var/lib/docker/containers/*/*.log {
|
|
daily
|
|
rotate 7
|
|
compress
|
|
delaycompress
|
|
missingok
|
|
notifempty
|
|
copytruncate
|
|
maxsize 100M
|
|
}
|
|
|
|
# Application logs (if mounted to host)
|
|
/var/log/overseas-appointment/*.log {
|
|
daily
|
|
rotate 14
|
|
compress
|
|
delaycompress
|
|
missingok
|
|
notifempty
|
|
create 0640 root root
|
|
sharedscripts
|
|
}
|
|
EOF
|
|
|
|
echo "Log rotation configuration created at: ${LOGROTATE_CONF}"
|
|
|
|
# Test the configuration
|
|
logrotate -d "${LOGROTATE_CONF}" 2>/dev/null && echo "Configuration is valid."
|
|
|
|
echo "Log rotation setup complete!"
|
|
echo ""
|
|
echo "To manually run log rotation:"
|
|
echo " sudo logrotate -f ${LOGROTATE_CONF}"
|