Автоматична синхронизация на Proxmox бекъпи под Windows 11 WSL2

Тези скриптове автоматично следят за нови LXC бекъпи на вашите Proxmox сървъри и ги свалят локално. Идеални са за Windows 11 с WSL2, където искате да архивирате бекъпите си на локален диск.
Основни възможности
- ✅ Автоматично откриване на нови бекъпи
- ✅ Проследяване на свалени файлове (не сваля същия бекъп повторно)
- ✅ Автоматично изтриване на стари бекъпи (по избор)
- ✅ Детайлно логване на всички операции
- ✅ Поддръжка на множество LXC контейнери
- ✅ Възможност за работа с множество Proxmox сървъри независимо
Предварителни изисквания
- Windows 11 с инсталиран WSL2 (Ubuntu препоръчително)
- SSH достъп до Proxmox сървърите
rsyncинсталиран (обикновено идва по подразбиране в WSL)- Монтиран Windows диск в WSL (например
/mnt/d/)
Инсталация
Сваляне на скриптовете
# За първи Proxmox сървър
wget https://gist.fedia.eu/urocibg/70159bb552e1499083b3622d2f9b09e6/raw/HEAD/backup_sync_pve1.sh
chmod +x backup_sync_pve1.sh
# За втори Proxmox сървър
wget https://gist.fedia.eu/urocibg/bc68e101d0b04df8b765a81b42621453/raw/HEAD/backup_sync_pve2.sh
chmod +x backup_sync_pve2.shПървоначална настройка
Първи сървър (PVE1):
# Стартирай скрипта първи път за създаване на конфигурационен файл
./backup_sync_pve1.sh
# Отвори конфига за редактиране
nano backup_config_pve1.confРедактирай следните параметри:
PROXMOX_HOST– IP адрес на Proxmox сървъра (например: 10.110.110.68)PROXMOX_USER– потребител за SSH достъп (обикновено: root)REMOTE_BACKUP_PATH– път до бекъпите на сървъра (например: /backup512/dump)LOCAL_BACKUP_PATH– локален път за съхранение (например: /mnt/d/backup_proxmox_pve1)LXC_IDS– ID-та на LXC контейнерите, разделени със запетая (например: 111,114)KEEP_DAYS– брой дни за задържане на локални бекъпи (0 = безкрайно)
Втори сървър (PVE2):
# Стартирай скрипта първи път
./backup_sync_pve2.sh
# Редактирай конфига
nano backup_config_pve2.confПромени същите параметри като горе, но със стойностите за втория сървър.
Настройка на SSH ключове (препоръчително)
За да работят скриптовете без парола:
# Генерирай SSH ключ ако нямаш
ssh-keygen -t rsa -b 4096
# Копирай ключа на първия Proxmox
ssh-copy-id [email protected]
# Копирай ключа на втория Proxmox
ssh-copy-id [email protected]
# Тествай връзката
ssh [email protected]
ssh [email protected]
Използване
Ръчно стартиране
# Синхронизация само от първия сървър
./backup_sync_pve1.sh
# Синхронизация само от втория сървър
./backup_sync_pve2.sh
# Синхронизация от двата сървъра
./backup_sync_pve1.sh && ./backup_sync_pve2.sh
Автоматизация с Cron
За автоматично изпълнение на всеки 6 часа:
# Отвори crontab
crontab -e
# Добави следните редове (промени пътищата според твоята инсталация)
0 */6 * * * /home/username/backup_sync_pve1.sh >> /home/username/backup_sync_pve1.log 2>&1
0 */6 * * * /home/username/backup_sync_pve2.sh >> /home/username/backup_sync_pve2.log 2>&1
Примери за различни интервали:
- Всеки час:
0 * * * * - Всеки ден в 2:00 часа:
0 2 * * * - Всеки ден в 2:00 и 14:00:
0 2,14 * * * - Всяка неделя в 3:00:
0 3 * * 0
Мониторинг
Преглед на логовете
# Последните 20 реда от лога на PVE1
tail -20 backup_sync_pve1.log
# Последните 20 реда от лога на PVE2
tail -20 backup_sync_pve2.log
# Следене на лога в реално време
tail -f backup_sync_pve1.log
Проверка на свалените бекъпи
# Покажи всички бекъпи от PVE1
ls -lh /mnt/d/backup_proxmox_pve1/
# Покажи всички бекъпи от PVE2
ls -lh /mnt/d/backup_proxmox_pve2/
# Покажи само последните 5 бекъпа
ls -lt /mnt/d/backup_proxmox_pve1/ | head -6
Проверка на статистика
# Колко бекъпа са свалени от PVE1
wc -l .downloaded_backups_pve1
# Колко място заемат бекъпите
du -sh /mnt/d/backup_proxmox_pve1/
du -sh /mnt/d/backup_proxmox_pve2/
Структура на файловете
След инсталацията ще имате следните файлове за всеки сървър:
За първи сървър:
backup_sync_pve1.sh– основен скриптbackup_config_pve1.conf– конфигурационен файлbackup_sync_pve1.log– лог файл.downloaded_backups_pve1– tracking файл (скрит)
За втори сървър:
backup_sync_pve2.sh– основен скриптbackup_config_pve2.conf– конфигурационен файлbackup_sync_pve2.log– лог файл.downloaded_backups_pve2– tracking файл (скрит)
Често срещани проблеми
"Permission denied" при SSH
Решение: Настрой SSH ключове както е описано по-горе, или провери правата на .ssh директорията:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
Скриптът не намира бекъпите
Решение: Провери дали пътят REMOTE_BACKUP_PATH е правилен:
ssh [email protected] "ls -la /backup512/dump"
Бекъпите не се трият автоматично
Решение: Провери стойността на KEEP_DAYS в конфиг файла. Ако е 0, автоматичното триене е изключено.
"rsync: command not found"
Решение: Инсталирай rsync:
sudo apt update
sudo apt install rsync
Допълнителни съвети
Оптимизация на мрежовия трафик
Ако имаш бавна мрежа, можеш да добавиш компресия в SSH_OPTIONS:
SSH_OPTIONS="-o ConnectTimeout=30 -o ServerAliveInterval=60 -C"
Известия при завършване
Добави известие в края на скрипта:
# В края на скрипта добави
echo "Backup sync приключи!" | wall
Backup на конфигурационните файлове
Препоръчително е да направиш копие на конфиг файловете:
cp backup_config_pve1.conf backup_config_pve1.conf.backup
cp backup_config_pve2.conf backup_config_pve2.conf.backup
Заключение
Тези скриптове ти осигуряват надеждна автоматична система за архивиране на Proxmox бекъпи. Веднъж настроени, те работят автономно и гарантират, че винаги имаш локално копие на важните си LXC контейнери.
За въпроси и проблеми можете да проверите логовете или да тествате връзката до Proxmox сървърите ръчно със ssh и rsync.

