#!/bin/bash # Home directory backup script # Generated by Ansible DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="/opt/backups/home" LOG_FILE="/var/log/backups/home.log" echo "$(date): Starting home backup" >> "$LOG_FILE" # Create backup directory mkdir -p "$BACKUP_DIR" # Backup each user's home directory {% for user in backup_users | default(['master', 'beast', 'ladmin', 'user']) %} if [ -d "/home/{{ user }}" ]; then echo "$(date): Backing up /home/{{ user }}" >> "$LOG_FILE" rsync -av --delete \ --exclude='.cache' \ --exclude='.local/share/Trash' \ --exclude='snap' \ --exclude='.docker' \ /home/{{ user }}/ \ "$BACKUP_DIR/{{ user }}_$DATE/" >> "$LOG_FILE" 2>&1 fi {% endfor %} # Keep only last 7 days of backups find "$BACKUP_DIR" -type d -name "*_20*" -mtime +7 -exec rm -rf {} \; 2>/dev/null echo "$(date): Home backup completed" >> "$LOG_FILE"