Настройка параметров rsync для Synology Hyper-Backup (и параметров HB)

Я хочу, чтобы иметь возможность настроить параметры rsync Hyper Backup использует, когда опция резервного копирования Data Backup Task > Remote Data Copy выбран, но параметры Hyper Backup ограничены и несколько размыты.

версия DSM: DSM 6.0.2-8451 обновить 9

Я на самом деле дам свое собственное решение в качестве ответа, но если появится какое-либо лучшее решение, я проверю его. Для того, чтобы это было полезно для нуждающихся людей, я также запишу здесь свои выводы о предмет.


какие параметры гипер резервного копирования означает, ВИС-а-ВИС варианты по rsync

по умолчанию

по умолчанию, если на вкладке Параметры задачи не отмечен ни один из следующих параметров, rsync использует эти параметры:

--chmod=ugo=rwx -W -H -rlt -p --delete --exclude-from=/tmp/RSYNC_RULE_xxxxxx

Примечания:

  • любая конфигурация приведет к созданию дополнительных файлов и папок в удаленном хранилище резервных копий: @app, _Syno_TaskConfig и synobkpinfo.БД, управляемая Hyper Резервное копирование для собственного использования
  • многие команды rsync запускаются для управления файлами Hyper Backup и проверки целостности; параметры rsync различаются для этих команд: я говорю только о параметрах, используемых при резервном копировании ваших фактических данных здесь
  • файл exclude-from создается временно, чтобы отразить некоторые отмеченные опции (см. ниже)

включить сжатие трансферт

добавляет опцию rsync: --compress

включить резервное копирование на уровне блоков

удаляет rsync параметр:-W

зарезервировать резервные копии файлов в месте назначения

удаляет rsync параметр:--delete

включить резервное копирование метаданных

нет модификации опции rsync

создает дополнительную папку в удаленных репозиториях резервных копий: @app / @metadata.


Запускает команды rsync для управления новая папка, предположительно содержащая права доступа и данные владельца резервных копий файлов.

включить резервное копирование миниатюр

нет модификации опции rsync

Я думаю (еще не был там), что он изменяет содержимое временного исключения из файлов.


Копирует папку @eaDir, находящуюся в каждой папке, содержащей изображение, @eaDir, содержащую один или несколько эскизов изображения, созданных DSM.

6
задан fixer1234
11.11.2022 3:12 Количество просмотров материала 2375
Распечатать страницу

1 ответ

вот решение, которое я придумал (по состоянию на февраль 2017 года), чтобы иметь возможность полностью настроить параметры rsync, используемые задачами Hyper Backup.

настройка rsync исполняемого файла DiskStation

трудно сказать, если настройка конфигурации HyperBackup и файлы задач возможно, но я мог бы прийти к выводу, что он использует двоичный файл rsync присутствует в /usr/bin/. Остальное - установить промежуточный скрипт, который настраивает переданные параметры вверх.

  • подключение к серверу DiskStation через SSH с пользователем "admin"
  • sudo -i et введите тот же пароль, что и пользователь "admin"
  • mv /usr/bin/rsync /usr/bin/rsync.orig
  • touch /usr/bin/rsync
  • chmod 4755 /usr/bin/rsync
  • echo '#!/bin/sh

    exec /usr/bin/rsync.orig "$@" --option-you-want-to-add' > /usr/bin/rsync

любое другое более мягкое разрешение радушно.

убедившись, что модификация будет противостоять обновлениям

Я не уверен, является ли или не DSM управляет исполняемым файлом rsync системы, и если это так, обновление DSM может произойти изменение, которое мы сделали, чтобы исчезнуть в пустоту. Кто-нибудь может это подтвердить? Если это так, то я бы придумал сценарий, который я бы программировал через Control Panel > Task Scheduler регулярно (например, каждый день в полночь), чтобы гарантировать, что модификация будет сохраняться в обновлениях, и что будут учитываться обновления самого двоичного файла rsync.

во-первых, я бы установил мой модифицированный сценарий rsync в путь, где я может заставить его развиваться (если мои изменения должны меняться с течением времени):

/usr/местные/Бен/rsync_modified.sh :

#!/bin/sh

# This script is a custom modification script
# It calls the original binary rsync with modified options

# ordering to kill all child processes if receiving term signal
trap 'pkill -P $$' EXIT

# args to array
args2array () {
    for i do printf %s\n "$i" | sed "s/'/'\\''/g;1s/^/'/;$s/$/' \\/" ; done
    echo " "
}
ARGS=$(args2array "$@")


# ...whatever modification you want to make on $ARGS...


# setting arguments again, from $ARGS
eval "set -- ${ARGS[@]}"

/usr/bin/rsync.orig "$@"

# Notes: the args2array call and the arguments setting in the end helps
# giving rsync.orig the arguments as they would be passed through direct
# call. Adding string or expanded arrays during the call of rsync.orig has
# revealed to fail in some cases, where rsync would ignore some of the
# added parameters.

затем я бы создал этот скрипт, который я мог бы запрограммировать в запланированных задачах (с пользователем "root")

/usr/местные/Бен/rsyncUpdateManager.sh :

#!/bin/sh

# Make sure the modified version of rsync is not overwritten
# and that updates of the original rsync binary are taken into account.

# init
usageFile="/usr/bin/rsync"
origFile="/usr/bin/rsync.orig"
backupFile="/usr/bin/rsync.orig"
modificationScript="/usr/local/bin/rsync_modified.sh"

# check if usage file is a binary
grep -qI . $usageFile && TYPE="TEXT" || TYPE="BINARY"
if [ $TYPE == "BINARY" ]
then

    # 1st installation or DSM updated rsync
    if [ -f $origFile ]
    then
        # a original file already exists (probably created by this script)
        # we back it up
        NOW=$(date +"%Y%m%d_%H%M%S")
        mv $origFile "${backupFile}.$NOW.bak"
    fi

    # rename binary file as original file
    mv $usageFile $origFile
fi

# copy modification script in the place of usage file
cp $modificationScript $usageFile

# giving it the same rights as original file (on DiskStation server)
chmod 4755 $usageFile
0
отвечен Bob 2022-11-12 11:00

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх