Инструменты пользователя

Инструменты сайта


ac:restic

пошаговая настройка RESTIC

инициализация -

docker run --rm -e RESTIC_PASSWORD=backuppass -e RESTIC_REPOSITORY=/repo -v /var/backup/restic:/repo restic/restic init

Добавить файл

docker run --rm -e RESTIC_PASSWORD=backuppass -e RESTIC_REPOSITORY=/repo -v /var/backup/restic:/repo -v /tmp/ac.fbk:/data/ac.fbk restic/restic backup /data/ac.fbk

если надо добавить старые файлы с таким форматом ac_2025-07-31.fbk.gz ac_2025-08-21.fbk.gz

разовое добавление

docker run --rm \
-e RESTIC_PASSWORD=backuppass \
-e RESTIC_REPOSITORY=/repo \
-v /var/backup/restic:/repo \
-v /var/backup:/data \
restic/restic backup /data/ac_2025-11-09.fbk.gz \
  --tag ac \
  --time "2025-11-09 23:59:00"

скопом

docker run --rm \
--entrypoint /bin/sh \
-e RESTIC_PASSWORD=backuppass \
-e RESTIC_REPOSITORY=/repo \
-v /var/backup/restic:/repo \
-v /var/backup:/data \
restic/restic -c '
  for f in /data/ac_*.fbk.gz; do
    d=$(echo "$f" | sed -E "s#.*/ac_([0-9]{4}-[0-9]{2}-[0-9]{2}).*#\1#")
    echo "Adding $f as $d"
    restic backup "$f" --tag ac --time "${d} 23:59:00"
  done
'

статы

docker run --rm \
-e RESTIC_PASSWORD=backuppass \
-e RESTIC_REPOSITORY=/repo \
-v /var/backup/restic:/repo \
restic/restic snapshots
docker run --rm \
-e RESTIC_PASSWORD=backuppass \
-e RESTIC_REPOSITORY=/repo \
-v /var/backup/restic:/repo \
restic/restic stats
#!/bin/bash
set -euo pipefail
set -o pipefail

RESTIC_PASSWORD="backuppass"
RESTIC_REPOSITORY="/repo"
RESTIC_VOLUME="/var/backup/restic"   # тут лежит restic-репо на хосте
FIREBIRD_CONTAINER="firebird5"

echo "$(date) start backup"

# 1) Делаем gbak внутри контейнера firebird и сразу стримим в restic
docker exec \
  -e ISC_USER=SYSDBA \
  -e ISC_PASSWORD=sysdba \
  "$FIREBIRD_CONTAINER" \
  gbak -b -g ac stdout | \
docker run --rm -i \
  -e RESTIC_PASSWORD="$RESTIC_PASSWORD" \
  -e RESTIC_REPOSITORY="$RESTIC_REPOSITORY" \
  -v "$RESTIC_VOLUME":/repo \
  restic/restic backup --stdin --stdin-filename ac.fbk --tag ac

echo "$(date +%X) restic backup ok"

# 2) Политика хранения (daily/weekly/monthly/yearly)
docker run --rm \
  -e RESTIC_PASSWORD="$RESTIC_PASSWORD" \
  -e RESTIC_REPOSITORY="$RESTIC_REPOSITORY" \
  -v "$RESTIC_VOLUME":/repo \
  restic/restic forget \
    --keep-daily 7 \
    --keep-weekly 4 \
    --keep-monthly 12 \
    --keep-yearly 3 >/dev/null 2>&1

echo "$(date +%X) retention applied"

# 3) Чистим репозиторий (физически удаляем лишние блоки)
docker run --rm \
  -e RESTIC_PASSWORD="$RESTIC_PASSWORD" \
  -e RESTIC_REPOSITORY="$RESTIC_REPOSITORY" \
  -v "$RESTIC_VOLUME":/repo \
  restic/restic prune

echo "$(date +%X) prune done"

# 4) Sweep базы внутри контейнера Firebird
docker exec \
  -e ISC_USER=SYSDBA \
  -e ISC_PASSWORD=sysdba \
  "$FIREBIRD_CONTAINER" \
  gfix -sweep localhost:ac

echo "$(date +%X) sweep ok"
ac/restic.txt · Последнее изменение: attid

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki