Files
docker-s3-backup/entrypoint.sh
S.Gromov f8e0267b54 Обновлены скрипты и конфигурации для улучшения резервного копирования
- Изменено имя папки в S3 на имя проекта по умолчанию
- Обновлено количество хранимых версий бэкапов вместо дней
- Изменено расписание запуска бэкапов на 05:00
- Обновлены переменные окружения в примерах и документации
- Улучшено логирование и обработка старых бэкапов
2025-10-22 10:24:53 +03:00

47 lines
2.2 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
echo "================================================"
echo "Universal Docker Project Backup Service"
echo "================================================"
echo "Project: ${BACKUP_PROJECT_NAME:-project}"
echo "Source Path: ${BACKUP_SOURCE_PATH:-.} (mounted as /backup-source)"
echo "Timezone: ${TZ:-Europe/Moscow}"
echo "Backup Schedule: ${BACKUP_SCHEDULE:-0 5 * * *}"
echo "S3 Endpoint: ${BACKUP_S3_ENDPOINT:-не указан}"
echo "S3 Bucket: ${BACKUP_S3_BUCKET:-не указан}"
echo "Retention Count: ${BACKUP_RETENTION_COUNT:-30} последних версий"
echo "Backup Type: Full project directory"
if [ -n "$BACKUP_STOP_SERVICES" ]; then
echo "Services to stop: ${BACKUP_STOP_SERVICES}"
echo "Compose file: /backup-source/docker-compose.yml (auto-detect)"
fi
echo "================================================"
# Проверка обязательных переменных
if [ -z "$BACKUP_S3_BUCKET" ] || [ -z "$BACKUP_S3_ACCESS_KEY" ] || [ -z "$BACKUP_S3_SECRET_KEY" ]; then
echo "ERROR: Не заданы обязательные переменные окружения для S3!"
echo "Необходимо указать: BACKUP_S3_BUCKET, BACKUP_S3_ACCESS_KEY, BACKUP_S3_SECRET_KEY"
exit 1
fi
# Создаем crontab файл с заданным расписанием
echo "${BACKUP_SCHEDULE:-0 5 * * *} /scripts/backup.sh >> /var/log/backup.log 2>&1" > /scripts/crontab
echo "Расписание установлено: ${BACKUP_SCHEDULE:-0 5 * * *}"
echo "Логи сохраняются в: /var/log/backup.log"
echo "================================================"
# Опционально: запускаем первый бэкап сразу при старте
if [ "${BACKUP_ON_START:-false}" = "true" ]; then
echo "Запуск начального бэкапа..."
/scripts/backup.sh >> /var/log/backup.log 2>&1
fi
echo "Запуск supercronic..."
echo "Контейнер запущен и ожидает выполнения по расписанию"
echo "================================================"
# Запускаем supercronic в foreground режиме
exec supercronic /scripts/crontab