Borgbackup настройка клиента

Установка:

apt install borgbackup

# Если ключа ssh нет
ssh-keygen

# Копируем ключ ssh на сервер в .ssh\authorized_keys
# Задайте права доступа '0700' для директории '.ssh' и '0600' для 'authorized_keys'
# Для того, чтобы заработала аутентификация по ключу также требуется, чтобы домашняя директория на Storage Box/Backup space не имела разрешения на запись для Группы и Остальных
cat .ssh/id_rsa.pub

# Задаем версию borg для hetzner
export BORG_REMOTE_PATH="borg-1.1"

# Генерируем парольную фразу для криптографии и записываем её в надежное место
export BORG_PASSPHRASE=""

# Задаем адрес репозитория
export BORG_REPO="ssh://u@u.your-storagebox.de:23/./auto"

# Инициализируем новый репозиторий c шифрованием ключем и паролем
borg init --encryption=keyfile

# Проверка
borg info

# Экспорт ключа в надежное место
borg key export :: ./borg_key

# Импорт ключа, для доступа с новой машины
borg key import :: ./borg_key

Основные команды:

# Создание бэкапа
borg create --stats --progress ::name_backup dir1 dir2

# Список бэкапов
borg list

# Распакавать файлы в текущую директорию
borg extract ::name_backup /folder

# Примонтировать бэкапы
borg mount /mnt/backups
borg umount /mnt/backups

# Проверка репозитория на ошибки
borg check -v ::

# Удаление старых бэкапов
# --keep-within INTERVAL	храним все архивы в течение указанного промежутка времени, "H", "d", "w", "m", "y"
# --keep-last, --keep-secondly 	сколько последних копий хранить
# --keep-minutely 	сколько поминутных архивов хранить
# -H, --keep-hourly 	сколько почасовых архивов хранить
# -d, --keep-daily 	сколько ежедневны архивов хранить
# -w, --keep-weekly 	сколько еженедельных архивов хранить
# -m, --keep-monthly 	сколько ежемесячных архивов хранить
# -y, --keep-yearly 	сколько ежегодных архивов хранить
# Для теста добавим --list и --dry-run
borg prune --keep-within 3d --keep-daily 12 --keep-weekly 12 --keep-monthly 12 --list --dry-run

# Сравнение бэкапов
borg diff ::backup1 backup2

Скрипт бэкапа:

#!/usr/bin/env bash

## если используется нестандартный SSH-ключ,
## то его надо явно указать:
# export BORG_RSH="ssh -i /home/userXY/.ssh/id_ed25519"

export BORG_REMOTE_PATH="borg-1.1" \
  BORG_PASSPHRASE="" \
  BORG_REPO="ssh://u@u.your-storagebox.de:23/./auto"

##
## Вывод в файл журнала
##
LOG="/var/log/borg.log"
exec > >(tee -i ${LOG})
exec 2>&1

echo "###### Backup started: $(date) ######"

##
## - сделать дамп базы данных
##

##
## Передача файлов в репозиторий.
##

echo "Transfer files ..."
borg create --stats                      \
    ::'{now:%Y-%m-%d_%H:%M}'             \
    /                                    \
    --exclude /dev                       \
    --exclude /proc                      \
    --exclude /sys                       \
    --exclude /var/run                   \
    --exclude /run                       \
    --exclude /lost+found                \
    --exclude /mnt                       \
    --exclude /var/lib/lxcfs

echo "###### Backup ended: $(date) ######"

Автозапуск:

crontab -e
0 3 * * * /root/backup.sh > /dev/null 2>&1

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *