Files
gitea-backup/backup-scripts/setup-backup-cron.sh
2026-01-06 22:12:07 +05:00

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 ""