Перейти к основному содержимому

Пользовательские методы резервного копирования

Можно создать собственный метод резервного копирования и связать его с системой сбора файлов резервных копий YunoHost. Это может быть полезно, если вы хотите использовать собственное программное обеспечение для резервного копирования или, например, выполнять операции монтирования/размонтирования дисков.

Эта операция выполняется с помощью обработчика событий и позволит вам запустить резервное копирование следующим образом:

yunohost backup create --method custom

Ниже приведён упрощённый пример, который можно использовать для настройки ротационного резервного копирования с еженедельной заменой дисков:

/etc/yunohost/hooks.d/backup_method/05-custom

#!/bin/bash
set -euo pipefail

work_dir="$2"
name="$3"
repo="$4"
size="$5"
description="$6"

case "$1" in
need_mount)
# Set false if your method can itself put files in good place in your archive
true
;;
backup)
mount /dev/sda1 /mnt/hdd
if [[ "$(df /mnt/hdd | tail -n1 | cut -d" " -f1)" != "/dev/sda1" ]]
then
exit 1
fi
pushd "$work_dir"
current_date=$(date +"%Y-%m-%d_%H:%M")
cp -a "${work_dir}" "/mnt/hdd/${current_date}_$name"
popd
umount /mnt/hdd
;;
*)
echo "hook called with unknown argument \`$1'" >&2
exit 1
;;
esac

exit 0