61 lines
2.1 KiB
Bash
Executable File
61 lines
2.1 KiB
Bash
Executable File
#!/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 ""
|