Proxmox має вбудований механізм створення резервних копій образів
віртуальних машин, але копія налаштувань самого гіпервізору відсутня в
community version.
Тому спільнота створює власні механізми, один з них проєкт від
DerDanilo:
https://github.com/DerDanilo/proxmox-stuff
Де є скрипт резервного копіювання основних файлів до архівної теки, і
опис як відновити.
Ось його копія:
#!/bin/bash
# Version 0.2.2 - BETA ! !
# Date 02.20.2020
# Author DerDanilo
# Contributors aboutte, xmirakulix, bootsie123
# set vars
# always exit on error
set -e
# permanent backups directory
# default value can be overridden by setting environment variable before running prox_config_backup.sh
# example: export BACK_DIR="/mnt/pve/media/backup
_bdir=${BACK_DIR:-/mnt/backups/proxmox}
# number of backups to keep before overriding the oldest one
MAX_BACKUPS=5
# temporary storage directory
_tdir=${TMP_DIR:-/var/tmp}
_tdir=$(mktemp -d $_tdir/proxmox-XXXXXXXX)
function clean_up {
echo "Cleaning up"
rm -rf $_tdir
}
# register the cleanup function to be called on the EXIT signal
trap clean_up EXIT
# Don't change if not required
_now=$(date +%Y-%m-%d.%H.%M.%S)
_HOSTNAME=$(hostname -f)
_filename1="$_tdir/proxmoxetc.$_now.tar"
_filename2="$_tdir/proxmoxpve.$_now.tar"
_filename3="$_tdir/proxmoxroot.$_now.tar"
_filename4="$_tdir/proxmoxcron.$_now.tar"
_filename5="$_tdir/proxmoxvbios.$_now.tar"
_filename6="$_tdir/proxmoxpackages.$_now.list"
_filename_final="$_tdir/proxmox_backup_"$_HOSTNAME"_"$_now".tar.gz"
##########
function description {
clear
cat </dev/null)" != "" ] ; then
echo backing up custom video bios...
tar --warning='no-file-ignored' -cvPf "$_filename5" /usr/share/kvm/*.vbios
fi
# copy installed packages list
echo "Copying installed packages list from APT"
apt-mark showmanual | tee "$_filename6"
}
function compressandarchive {
echo "Compressing files"
# archive the copied system files
tar -cvzPf "$_filename_final" $_tdir/*.{tar,list}
# copy config archive to backup folder
# this may be replaced by scp command to place in remote location
cp $_filename_final $_bdir/
}
function stopservices {
# stop host services
for i in pve-cluster pvedaemon vz qemu-server; do systemctl stop $i ; done
# give them a moment to finish
sleep 10s
}
function startservices {
# restart services
for i in qemu-server vz pvedaemon pve-cluster; do systemctl start $i ; done
# Make sure that all VMs + LXC containers are running
qm startall
}
##########
description
are-we-root-abort-if-not
check-num-backups
# We don't need to stop services, but you can do that if you wish
#stopservices
copyfilesystem
# We don't need to start services if we did not stop them
#startservices
compressandarchive