/
/
/
1#!/bin/bash
2# NAS Configuration Backup Script
3# Generated by Ansible NAS role
4
5BACKUP_DIR="/var/backups/nas"
6TIMESTAMP=$(date '+%Y%m%d_%H%M%S')
7LOG_FILE="{{ nas_log_file }}"
8
9# Create backup directory
10mkdir -p "$BACKUP_DIR"
11
12log_message() {
13 echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
14}
15
16# Backup NFS exports
17if [ -f /etc/exports ]; then
18 cp /etc/exports "$BACKUP_DIR/exports_$TIMESTAMP"
19 log_message "Backed up NFS exports to $BACKUP_DIR/exports_$TIMESTAMP"
20fi
21
22# Backup mdadm configuration
23{% if nas_raid_enabled | bool %}
24if [ -f {{ nas_mdadm_config_file }} ]; then
25 cp {{ nas_mdadm_config_file }} "$BACKUP_DIR/mdadm.conf_$TIMESTAMP"
26 log_message "Backed up mdadm config to $BACKUP_DIR/mdadm.conf_$TIMESTAMP"
27fi
28{% endif %}
29
30# Backup fstab
31if [ -f /etc/fstab ]; then
32 cp /etc/fstab "$BACKUP_DIR/fstab_$TIMESTAMP"
33 log_message "Backed up fstab to $BACKUP_DIR/fstab_$TIMESTAMP"
34fi
35
36# Backup network configuration
37if [ -d /etc/systemd/network ]; then
38 tar -czf "$BACKUP_DIR/network_config_$TIMESTAMP.tar.gz" /etc/systemd/network/
39 log_message "Backed up network config to $BACKUP_DIR/network_config_$TIMESTAMP.tar.gz"
40fi
41
42# Clean old backups (keep last 30 days)
43find "$BACKUP_DIR" -name "*_*" -mtime +30 -delete 2>/dev/null
44
45log_message "NAS configuration backup completed"