Why Automate Maintenance?
Manual server maintenance is error-prone and time-consuming. By scripting routine tasks like updates, log rotation, and health checks, you ensure consistency across your Breezes and free up time for higher-value work.
Creating a Maintenance Script
Write a bash script that handles common maintenance operations:
#!/bin/bash
# maintenance.sh - Weekly server maintenance
LOG="/var/log/maintenance-$(date +%F).log"
echo "=== Maintenance started: $(date) ===" | tee -a "$LOG"
# Update packages
apt update && apt upgrade -y 2>&1 | tee -a "$LOG"
# Clean old packages and cache
apt autoremove -y && apt autoclean 2>&1 | tee -a "$LOG"
# Rotate and compress old logs
find /var/log -name "*.log" -mtime +30 -exec gzip {} \;
# Check disk usage
df -h | tee -a "$LOG"
# Restart services if needed
systemctl restart nginx
echo "=== Maintenance complete: $(date) ===" | tee -a "$LOG"Scheduling with Cron
Automate execution by adding a cron job:
chmod +x /root/maintenance.sh
crontab -e
# Add: 0 3 * * 0 /root/maintenance.shSending Email Reports
Pipe script output to mail for automated reporting:
0 3 * * 0 /root/maintenance.sh 2>&1 | mail -s "Weekly Maintenance Report" admin@example.comBest Practices
- Test scripts in a staging environment before production
- Use
set -euo pipefailat the top of scripts to catch errors - Log all actions with timestamps for auditing
- Version control your maintenance scripts with Git