diff --git a/docs/backup_restore/proxmox/proxmox_backup.md b/docs/backup_restore/proxmox/proxmox_backup.md index f563d0d..8a518e4 100644 --- a/docs/backup_restore/proxmox/proxmox_backup.md +++ b/docs/backup_restore/proxmox/proxmox_backup.md @@ -4,15 +4,83 @@ - Location: verschlüsselt auf hetznerstoragebox gemäß Anleitung https://ralf-peter-kleinert.de/linux-server/proxmox-verschluesselt-backup.html. (Die liegt auch als Anhang im bitwarden) - Scedule: täglich im cron und wird 14 Tage aufgehoben - ÄNDERUNGEN siehe [/etc/fstab](../proxmox/fstab) - -- Skript: /root/backup-pve-configs.sh -```snippet ---8<-- "/docs/backup_restore/proxmox/backup_pve_configs" -``` - Log: /root/pve-backup.log +- Skript: /root/backup-pve-configs.sh +``` snippets +BACKUP_DIR="/mnt/storagebox-nocrypt/pve-configs-backup" +TODAY=$(date +%T_%F)-pve-configs-backup +LOGFILE="pve-backup.log" + +mkdir -p "$BACKUP_DIR/$TODAY" + +FILES=( + "/root/" + "/etc/pve/" + "/etc/network/interfaces" + "/etc/hosts" + "/etc/resolv.conf" + "/etc/hostname" + "/etc/timezone" + "/etc/passwd" + "/etc/group" + "/etc/shadow" + "/root/.ssh/" + "/etc/vzdump.conf" + "/etc/ssh/sshd_config" + "/var/lib/pve-cluster/" + "/etc/ssh/" + "/etc/cron.d/" + "/etc/cron.daily/" + "/etc/cron.hourly/" + "/etc/cron.weekly/" + "/etc/cron.monthly/" + "/var/spool/cron/" + "/etc/fstab" + "/etc/default/" + "/etc/apt/sources.list" + "/etc/apt/sources.list.d/" + "/var/log/" + "/etc/systemd/" + "/etc/sysctl.conf" + "/etc/security/" + "/var/backups/" + "/etc/fail2ban/" + "/root/backup-pve-configs.sh" +) + +EXCLUDE_DIRS=( + "/mnt/storagebox-crypt" + "/mnt/storagebox-nocrypt" + "/var/lib/vz/images/" + "/var/lib/lxc/" + "/var/lib/vz/private/" + "/var/lib/lxcfs/" +) + +# rsync-Ausschlussparameter erstellen +EXCLUDE_PARAMS=() +for EXCLUDE in "${EXCLUDE_DIRS[@]}"; do + EXCLUDE_PARAMS+=(--exclude="$EXCLUDE") +done + +for FILE in "${FILES[@]}"; do + if [ -e "$FILE" ]; then + echo "Kopiere $FILE..." + rsync -aL --relative --ignore-missing-args --safe-links "${EXCLUDE_PARAMS[@]}" "$FILE" "$BACKUP_DIR/$TODAY/" 2>/dev/null + else + echo "Warnung: $FILE existiert nicht und wird uebersprungen." >> ${LOGFILE} + fi +done + +find "$BACKUP_DIR" -mindepth 1 -maxdepth 1 -type d -mtime +14 -exec rm -rf {} \; + +echo "Backup fuer $TODAY abgeschlossen." >> ${LOGFILE} +``` -# 2. Komplette lxc und VMs # + + +## 2. Komplette lxc und VMs # - Skript: GUI - Log: GUI - Location: //192.168.178.29/Backups/proxmox @@ -20,12 +88,12 @@ ![scedule.png](/scedule.png) - **TODO: Borgbackup für Container** -# 3. vm_paperless # +## 3. Daten vm_paperless # - Skript: /paperless/backupqnap.sh - Location: //192.168.178.29/paperless/zips; //u358899@u358899.your-storagebox.de/backup/./backups/paperless - Scedule: täglich 4:00 für 31 Tage -# 4. VM Homeassistent +## 4. VM Homeassistent