43 lines
1.6 KiB
Bash
43 lines
1.6 KiB
Bash
#!/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
|