Я просыпаюсь на bash-скрипте ведьмы rsysc между двумя NAS-устройствами Onsite и Offsite. Цель состоит в том, чтобы создать резервную копию с локального NAS на удаленном NAS.
Мы работаем над картой на месте с довольно большими файлами. приблизительно 40 ГБ или больше. Rsync по умолчанию имеет привычку пересылать файлы, если они переименованы или перемещены в подпапку в исходном dest. Это не очень эффективно, (мы перемещаем много больших файлов вокруг локального NAS). поэтому многие большие файлы снова будут загружены на внешнее NAS и задержат процесс.
Я обнаружил, что есть исправление для rsync, добавляющее функциональность --detect-renamed и --detect-move. (см. ссылку ниже :)
https://moderncaveman.org/projects/modern/rsync-detect-renamed/patching-rsync-for-renamed.html
Я добавил опцию --detect-move, и файлы фактически перемещаются на удаленный NAS, и файл больше не будет загружен. Но он работает только с параметром --delete-after, и если этот параметр включен и что-то удалено на локальном NAS, он также будет удален на удаленном NAS. Так что мой сценарий имеет больше функций синхронизации, чем функции резервного копирования. Я думаю, это рискованно.
Есть ли какой-нибудь способ сохранить удаленные файлы на локальном NAS на удаленном NAS (без -delete-after или как-то еще?) но все еще работает функция --detect-move?
Смотрите мою команду rsync ниже:
rsync -avzH - обнаружить-переместить - удалить-после --progress CIFS_mount_to_onsiteNAS CIFS_mount_to_offsiteNAS
заранее спасибо.