Právě si prohlížíte Zálohování konfigurace Proxmox VE

Zálohování konfigurace Proxmox VE

Proxmox VE nemá (zatím, údajně je v roadmapě) vestavěný nástroj na zálohu konfigurace PVE hosta. Musíme si proto pomoci samo-domo řešení. Pro obnovu konfigurace budeme potřebovat zálohu několika adresářů a souborů:

/etc/pve
/etc/network
/etc/hosts
/etc/resolv.conf
/etc/fstab

Samozřejmě si můžete do konfigurace následujícícho skriptu přidat cokoliv dalšího:-)

#!/bin/bash

# Nastavení proměnných
BACKUP_DIR="/remote/backup/$HOSTNAME" # Cílový adresář pro zálohu
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S") # Časová značka pro zálohu
HOSTNAME=$(hostname) # Název serveru
LOG_FILE="/var/log/pvebackup.log" # Logovací soubor
KEEP_DAY=14

# Create non existing directory
if [ -d "$BACKUP_DIR" ]; then
echo "Directory ${$BACKUP_DIR} exists."
else
# Take action if $DIR does not exist. #
echo "Creating ${$BACKUP_DIR}."
mkdir ${backupfolder}
fi


# Seznam adresářů k zálohování
CONFIG_DIRS=(
"/etc/pve"
"/etc/network"
"/etc/hosts"
"/etc/resolv.conf"
"/etc/fstab"
)

# Vytvoření cílového adresáře
DEST="$BACKUP_DIR/$HOSTNAME-$TIMESTAMP"
mkdir -p "$DEST"

echo "[$(date)] Starting backup of config Proxmox VE..." | tee -a "$LOG_FILE"

# Zálohování pomocí rsync
for DIR in "${CONFIG_DIRS[@]}"; do
if [ -d "$DIR" ] || [ -f "$DIR" ]; then
echo "Processing $DIR..." | tee -a "$LOG_FILE"
rsync -aHAX --delete "$DIR" "$DEST" 2>>"$LOG_FILE"
else
echo "WARNING: $DIR does not exist!" | tee -a "$LOG_FILE"
fi
done

echo "[$(date)] Backup finished: $DEST" | tee -a "$LOG_FILE"

Princip zálohy je navržen tak, že na nějakém NASu je vytvořen adresář sdílení přes NFS protokol. Ten namapujeme do lokálního adresáře /remote/backup. Skript se pokusí najít podadresář se jménem zálohovaného hosta. Pokud ho nenajde, vytvoří ho. A do něj „nasype“ do adresáře tvořeného časovou značkou doby zálohy pomocí rsync vše, co si ve skriptu zkonfigurujete.

Pro pravidelné spouštění uístěte skript do /etc/cron.daily a ráno se můžete na výsledek podívat do logu ve /var/log/pvebackup.log.