31 lines
908 B
Django/Jinja
31 lines
908 B
Django/Jinja
#!/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" |