Update backup and logging documentation for Proxmox and containers. Adjust retention policies for Yandex Object Storage and enhance log rotation settings across various containers. Include detailed instructions for VPS backup processes and configurations for AmneziaVPN.
This commit is contained in:
74
scripts/setup-vps-miran-backup-on-proxmox.sh
Normal file
74
scripts/setup-vps-miran-backup-on-proxmox.sh
Normal file
@@ -0,0 +1,74 @@
|
||||
#!/bin/bash
|
||||
# Однократная настройка бэкапа VPS Миран на хосте Proxmox.
|
||||
# Запускать на Proxmox под root. Перед запуском скопировать сюда backup-vps-miran.sh в /root/scripts/.
|
||||
# Делает: SSH-ключ (если нет), awscli, /root/.vps-miran-s3.env, cron.
|
||||
set -e
|
||||
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
echo "Запускайте под root."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SCRIPT_DIR="/root/scripts"
|
||||
BACKUP_SCRIPT="$SCRIPT_DIR/backup-vps-miran.sh"
|
||||
S3_ENV="/root/.vps-miran-s3.env"
|
||||
CRON_ENTRY="30 1 * * * $BACKUP_SCRIPT"
|
||||
VPS_DEPLOY="deploy@185.147.80.190"
|
||||
VPS_PORT="15722"
|
||||
|
||||
# ---- 1) SSH-ключ для доступа к VPS ----
|
||||
if [ ! -f /root/.ssh/id_ed25519 ] && [ ! -f /root/.ssh/id_rsa ]; then
|
||||
mkdir -p /root/.ssh
|
||||
ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N "" -q
|
||||
echo "Создан новый SSH-ключ. Добавьте публичный ключ на VPS (пользователь deploy):"
|
||||
echo ""
|
||||
cat /root/.ssh/id_ed25519.pub
|
||||
echo ""
|
||||
echo "На VPS выполните (или вставьте вывод выше в ~/.ssh/authorized_keys):"
|
||||
echo " ssh -p $VPS_PORT $VPS_DEPLOY 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys' < /root/.ssh/id_ed25519.pub"
|
||||
else
|
||||
echo "SSH-ключ уже есть. Публичный ключ (должен быть в authorized_keys на VPS):"
|
||||
[ -f /root/.ssh/id_ed25519.pub ] && cat /root/.ssh/id_ed25519.pub || cat /root/.ssh/id_rsa.pub
|
||||
fi
|
||||
|
||||
# ---- 2) awscli для S3 ----
|
||||
if ! command -v aws >/dev/null 2>&1; then
|
||||
echo "Установка awscli..."
|
||||
apt-get update -qq && apt-get install -y -qq awscli
|
||||
echo "awscli установлен."
|
||||
else
|
||||
echo "awscli уже установлен."
|
||||
fi
|
||||
|
||||
# ---- 3) Креды S3 (Miran) ----
|
||||
if [ ! -f "$S3_ENV" ]; then
|
||||
cat > "$S3_ENV" << 'ENVFILE'
|
||||
S3_ACCESS_KEY=j3tears100@gmail.com
|
||||
S3_SECRET_KEY=wQ1-6sZEPs92sbZTSf96
|
||||
S3_BUCKET_NAME=9829-telegram-helper-bot
|
||||
ENVFILE
|
||||
chmod 600 "$S3_ENV"
|
||||
echo "Создан $S3_ENV с кредами S3 Miran."
|
||||
else
|
||||
echo "Файл $S3_ENV уже существует, не перезаписываю."
|
||||
fi
|
||||
|
||||
# ---- 4) Скрипт бэкапа и права ----
|
||||
mkdir -p "$SCRIPT_DIR"
|
||||
if [ -f "$BACKUP_SCRIPT" ]; then
|
||||
chmod +x "$BACKUP_SCRIPT"
|
||||
echo "Скрипт бэкапа: $BACKUP_SCRIPT (исполняемый)."
|
||||
else
|
||||
echo "Внимание: $BACKUP_SCRIPT не найден. Скопируйте backup-vps-miran.sh в $SCRIPT_DIR/ и снова запустите этот setup."
|
||||
fi
|
||||
|
||||
# ---- 5) Cron ----
|
||||
if crontab -l 2>/dev/null | grep -qF "backup-vps-miran.sh"; then
|
||||
echo "Запись cron для backup-vps-miran.sh уже есть."
|
||||
else
|
||||
(crontab -l 2>/dev/null || true; echo "$CRON_ENTRY") | crontab -
|
||||
echo "Добавлен cron: $CRON_ENTRY"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Готово. Проверка SSH на VPS: ssh -p $VPS_PORT $VPS_DEPLOY 'echo ok'"
|
||||
Reference in New Issue
Block a user