#!/bin/bash # Бэкап конфигов MTProto + сайт-заглушка с VPS Германия (185.103.253.99). # Запускать на хосте Proxmox под root. # Требуется: SSH без пароля с хоста к root@185.103.253.99 (ключ в ~/.ssh). # Результат: /mnt/backup/vps/mtproto-germany/mtproto-config-YYYYMMDD-HHMM.tar.gz set -e VPS_HOST="185.103.253.99" VPS_USER="root" SSH_OPTS=(-o ConnectTimeout=15 -o BatchMode=yes) BACKUP_ROOT="/mnt/backup/vps/mtproto-germany" RETENTION_DAYS=14 if [ "$(id -u)" -ne 0 ]; then echo "Запускайте под root." exit 1 fi mkdir -p "$BACKUP_ROOT" DATE=$(date +%Y%m%d-%H%M) ARCHIVE="$BACKUP_ROOT/mtproto-config-$DATE.tar.gz" # Проверка доступа к VPS if ! ssh "${SSH_OPTS[@]}" "${VPS_USER}@${VPS_HOST}" "echo ok" >/dev/null 2>&1; then echo "Ошибка: нет доступа по SSH к ${VPS_USER}@${VPS_HOST}. Настройте ключ: ssh-copy-id ${VPS_USER}@${VPS_HOST}" exit 1 fi # Архив с VPS: mtg, nginx, letsencrypt (katykhin.store), статика сайта ssh "${SSH_OPTS[@]}" "${VPS_USER}@${VPS_HOST}" "tar -chzf - -C / \ etc/systemd/system/mtg.service \ etc/nginx/sites-available \ etc/nginx/sites-enabled \ etc/letsencrypt/live/katykhin.store \ etc/letsencrypt/archive/katykhin.store \ etc/letsencrypt/renewal/katykhin.store.conf \ var/www/katykhin.store" > "$ARCHIVE" chmod 600 "$ARCHIVE" echo "Бэкап MTProto (VPS DE): $ARCHIVE ($(du -h "$ARCHIVE" | cut -f1))" find "$BACKUP_ROOT" -name 'mtproto-config-*.tar.gz' -mtime +$RETENTION_DAYS -delete