К сожалению нет штатного механизма по бэкапу Proxmox Virtual Environment. Поэтому будем изобретать велосипед в виде bash скрипта. Конфигурация Proxmox расположена в следующих каталогах:
- /etc/pve \
- /etc/network/interfaces \
- /etc/hostname \
- /etc/hosts
Создаем скрипт для бэкапа PVE /root/backup/scriptbackup.sh
#!/bin/bash
set -euo pipefail
# === НАСТРОЙКИ ===
BACKUP_DIR="/var/lib/vz/dump"
BACKUP_DIR2="/mnt/pve/hdd4tb/dump"
DATE=$(date +%Y-%m-%d_%H-%M)
HOSTNAME=$(hostname)
ARCHIVE_NAME="${HOSTNAME}_config_${DATE}.tar.gz"
ARCHIVE="${BACKUP_DIR}/${ARCHIVE_NAME}"
# === PBS ===
PBS_USER="root@pam!backupscript"
PBS_SERVER="IP PBS"
PBS_DATASTORE="Название хранилища PBS"
export PBS_FINGERPRINT="xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
TOKEN_FILE="/root/backup/.pbs-token"
# === ПРОВЕРКИ ===
if [[ ! -f "$TOKEN_FILE" ]]; then
echo "ERROR: PBS token file not found: $TOKEN_FILE"
exit 1
fi
# === ПАПКИ ===
mkdir -p "$BACKUP_DIR" "$BACKUP_DIR2"
# === СОЗДАНИЕ АРХИВА ===
echo "==> Создание локального архива..."
tar -czf "$ARCHIVE" \
/etc/pve \
/etc/network/interfaces \
/etc/hostname \
/etc/hosts
# === КОПИЯ НА HDD ===
echo "==> Копирование во второе хранилище..."
cp "$ARCHIVE" "$BACKUP_DIR2/"
# === PBS BACKUP ===
echo "==> Отправка копии на Proxmox Backup Server..."
exec 3< "$TOKEN_FILE"
export PBS_SECRET_KEY_FD=3
trap 'exec 3<&-' EXIT
proxmox-backup-client backup \
"config.conf:$ARCHIVE" \
--repository "${PBS_USER}@${PBS_SERVER}:${PBS_DATASTORE}" \
--backup-id "${HOSTNAME}-config"
# === ОЧИСТКА ===
echo "==> Очистка старых архивов (старше 3 дней)..."
find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +3 -delete
find "$BACKUP_DIR2" -type f -name "*.tar.gz" -mtime +3 -delete
echo "==> Бэкап успешно завершен:"
echo " Локально: $ARCHIVE"
echo " PBS ID: ${HOSTNAME}-config"
API Token
- Создаем API Token на PBS (лучше не root, а отдельный пользователь с минимальными правами):
- На PBS → Access → API Tokens → Add
- Даём права DatastoreAdmin (или Backup) на нужный datastore с propagate.
- Копируем Token Secret (он показывается только один раз).


Настраиваем файл токена:
# Создай файл
mkdir -p /root/backup
echo "твой_очень_длинный_секрет_токена_здесь" > /root/backup/.pbs-token
# Очень важные права!
chmod 600 /root/backup/.pbs-token
Создаем задание по удалению старых копий на PBS

Создаем задачу в планировщике на PVE
crontab -e

Результат


Прикольно