#!/bin/bash # # Настройка автоматического бэкапа Gitea # Запускать на Proxmox хосте # set -e LXC_ID="${LXC_ID:-300}" BACKUP_TIME="${BACKUP_TIME:-12:00}" # Время бэкапа (HH:MM) SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" echo "Настройка автоматического бэкапа Gitea" echo "" echo "LXC контейнер: $LXC_ID" echo "Время бэкапа: $BACKUP_TIME ежедневно" echo "" # Копируем скрипты echo "Копирование скриптов..." cp "$SCRIPT_DIR/backup-proxmox.sh" /usr/local/bin/gitea-backup cp "$SCRIPT_DIR/backup-gitea-lxc.sh" /usr/local/bin/gitea-backup-lxc chmod +x /usr/local/bin/gitea-backup /usr/local/bin/gitea-backup-lxc # Копируем скрипт в LXC pct push "$LXC_ID" "$SCRIPT_DIR/backup-gitea-lxc.sh" /root/backup-gitea-lxc.sh pct exec "$LXC_ID" -- chmod +x /root/backup-gitea-lxc.sh # Парсим время HOUR=$(echo "$BACKUP_TIME" | cut -d: -f1) MINUTE=$(echo "$BACKUP_TIME" | cut -d: -f2) # Создаём cron задачу CRON_FILE="/etc/cron.d/gitea-backup" cat > "$CRON_FILE" << EOF # Автоматический бэкап Gitea # Создано: $(date) # Ежедневный бэкап в $BACKUP_TIME $MINUTE $HOUR * * * root LXC_ID=$LXC_ID /usr/local/bin/gitea-backup >> /var/log/gitea-backup.log 2>&1 # Еженедельный полный vzdump (воскресенье в 13:00) 0 13 * * 0 root LXC_ID=$LXC_ID DO_VZDUMP=true /usr/local/bin/gitea-backup >> /var/log/gitea-backup.log 2>&1 EOF chmod 644 "$CRON_FILE" echo "" echo "✅ Cron задача создана: $CRON_FILE" echo "" echo "Расписание:" echo " - Ежедневно в $BACKUP_TIME: gitea dump + pg_dump" echo " - Воскресенье в 13:00: + полный vzdump контейнера" echo "" echo "Логи: /var/log/gitea-backup.log" echo "" echo "Ручной запуск:" echo " gitea-backup # Только данные" echo " DO_VZDUMP=true gitea-backup # + полный бэкап контейнера" echo ""