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:
130
scripts/backup-setup-sdb1-mount.sh
Normal file
130
scripts/backup-setup-sdb1-mount.sh
Normal file
@@ -0,0 +1,130 @@
|
||||
#!/bin/bash
|
||||
# Шаг 1 бэкапов: разметка 1 ТБ на /dev/sdb1, ФС ext4, монтирование в /mnt/backup, структура каталогов.
|
||||
# Запускать на хосте Proxmox под root.
|
||||
#
|
||||
# Использование:
|
||||
# ./backup-setup-sdb1-mount.sh --yes # разметить (если нужно), смонтировать, создать каталоги
|
||||
# ./backup-setup-sdb1-mount.sh --structure-only # только fstab, mount и каталоги (раздел уже есть)
|
||||
# ./backup-setup-sdb1-mount.sh # вывод действий без выполнения (без --yes)
|
||||
#
|
||||
set -e
|
||||
|
||||
BACKUP_MOUNT="/mnt/backup"
|
||||
DEV_DISK="/dev/sdb"
|
||||
DEV_PART="/dev/sdb1"
|
||||
# 1 ТБ на диске 2 ТБ — первая половина
|
||||
PART_END="50%"
|
||||
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
echo "Запускайте под root."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$(uname -s)" != "Linux" ]; then
|
||||
echo "Скрипт предназначен для запуска на хосте Proxmox (Linux)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DO_IT=false
|
||||
STRUCTURE_ONLY=false
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--yes) DO_IT=true ;;
|
||||
--structure-only) STRUCTURE_ONLY=true ;;
|
||||
esac
|
||||
done
|
||||
|
||||
echo "=== Шаг 1: хранилище бэкапов (sdb1 → ${BACKUP_MOUNT}) ==="
|
||||
echo ""
|
||||
|
||||
# Проверка наличия диска
|
||||
if [ ! -b "$DEV_DISK" ]; then
|
||||
echo "Ошибка: диск $DEV_DISK не найден."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Проверка: раздел уже есть и примонтирован?
|
||||
if mountpoint -q "$BACKUP_MOUNT" 2>/dev/null; then
|
||||
echo "$BACKUP_MOUNT уже примонтирован. Создаём только структуру каталогов (если нет)."
|
||||
DO_PART=false
|
||||
DO_MOUNT=false
|
||||
elif [ -b "$DEV_PART" ]; then
|
||||
echo "Раздел $DEV_PART уже существует."
|
||||
if [ "$STRUCTURE_ONLY" = true ]; then
|
||||
DO_PART=false
|
||||
DO_MOUNT=true
|
||||
else
|
||||
echo "Пропускаем разметку. Добавим fstab и монтирование."
|
||||
DO_PART=false
|
||||
DO_MOUNT=true
|
||||
fi
|
||||
else
|
||||
DO_PART=true
|
||||
DO_MOUNT=true
|
||||
fi
|
||||
|
||||
# --- Разметка (при необходимости) ---
|
||||
if [ "$DO_PART" = true ]; then
|
||||
echo ""
|
||||
echo "Будет выполнено:"
|
||||
echo " 1. Создание GPT на $DEV_DISK"
|
||||
echo " 2. Создание раздела $DEV_PART до $PART_END (1 ТБ)"
|
||||
echo " 3. Создание ФС ext4 на $DEV_PART"
|
||||
if [ "$DO_IT" != true ]; then
|
||||
echo ""
|
||||
echo "Для выполнения добавьте флаг: $0 --yes"
|
||||
exit 0
|
||||
fi
|
||||
echo ""
|
||||
parted -s "$DEV_DISK" mklabel gpt
|
||||
parted -s "$DEV_DISK" mkpart primary ext4 0% "$PART_END"
|
||||
partprobe "$DEV_DISK" || true
|
||||
sleep 1
|
||||
mkfs.ext4 -L backup "$DEV_PART"
|
||||
echo "Разметка и ФС созданы."
|
||||
fi
|
||||
|
||||
# --- Монтирование ---
|
||||
mkdir -p "$BACKUP_MOUNT"
|
||||
|
||||
if [ "$DO_MOUNT" = true ] && ! mountpoint -q "$BACKUP_MOUNT" 2>/dev/null; then
|
||||
UUID=$(blkid -s UUID -o value "$DEV_PART")
|
||||
if [ -z "$UUID" ]; then
|
||||
echo "Ошибка: не удалось получить UUID для $DEV_PART"
|
||||
exit 1
|
||||
fi
|
||||
if ! grep -q "UUID=$UUID" /etc/fstab 2>/dev/null; then
|
||||
if [ "$DO_IT" != true ] && [ "$STRUCTURE_ONLY" != true ]; then
|
||||
echo ""
|
||||
echo "Добавьте в /etc/fstab:"
|
||||
echo " UUID=$UUID $BACKUP_MOUNT ext4 defaults,nofail 0 2"
|
||||
echo ""
|
||||
echo "Затем: mount $BACKUP_MOUNT"
|
||||
echo "Для автоматического выполнения: $0 --yes или $0 --structure-only"
|
||||
exit 0
|
||||
fi
|
||||
echo "UUID=$UUID $BACKUP_MOUNT ext4 defaults,nofail 0 2" >> /etc/fstab
|
||||
echo "Добавлена запись в /etc/fstab."
|
||||
fi
|
||||
mount "$BACKUP_MOUNT"
|
||||
echo "Смонтировано: $BACKUP_MOUNT"
|
||||
fi
|
||||
|
||||
# --- Структура каталогов (всегда, если примонтировано) ---
|
||||
if ! mountpoint -q "$BACKUP_MOUNT" 2>/dev/null; then
|
||||
echo "Ошибка: $BACKUP_MOUNT не примонтирован. Сначала смонтируйте раздел."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$BACKUP_MOUNT/proxmox/dump"
|
||||
mkdir -p "$BACKUP_MOUNT/proxmox/etc-pve"
|
||||
mkdir -p "$BACKUP_MOUNT/restic/local"
|
||||
mkdir -p "$BACKUP_MOUNT/photos"
|
||||
mkdir -p "$BACKUP_MOUNT/vps"
|
||||
mkdir -p "$BACKUP_MOUNT/other"
|
||||
|
||||
echo ""
|
||||
echo "Структура каталогов создана:"
|
||||
ls -la "$BACKUP_MOUNT"
|
||||
echo ""
|
||||
echo "Готово. Точка монтирования: $BACKUP_MOUNT"
|
||||
Reference in New Issue
Block a user