Я пытаюсь настроить rsnapshot (который использует rsync) для резервного копирования сервера Windows, но у меня возникли проблемы с rsync будучи не в состоянии следовать символическую ссылку на сервере для резервного копирования.
настройка:
- Windows Server 2008 R2 с установленным Cygwin, который содержит файлы для резервного копирования
- сервер ArchLinux в той же сети, которая должна резервного копирования файлов с сервера Windows
- на сервере Windows установлен sshd и функционирует
- сервер Windows не имеет запущенного демона rsync (насколько я могу судить), но я могу использовать rsync через ssh для подключения к серверу Windows с сервера Linux и копирования файлов.
- поскольку приложение постоянно сохраняет некоторые файлы для резервного копирования, Windows server настроен на создание теневых копий Тома диска, содержащего данные для резервного копирования
-
я использую следующий скрипт для создания ссылки на последний том теневого копирования, так что он может быть доступен rsync:
#!/bin/sh # Mount the latest shadow copy for the specified volume VOLUME="D:" LINK_NAME="E:latest-data-shadow-copy" SHADOW_VOLUME=`vssadmin list shadows /for=$VOLUME | grep "Shadow Copy Volume:" | tail -1 | tr -s ' ' | cut -d ' ' -f5` SHADOW_VOLUME+="" rm $LINK_NAME cmd.exe /c mklink /d "$LINK_NAME" "$SHADOW_VOLUME"
Проблема
когда я пытаюсь запустить rsnapshot для резервного копирования данных на томе теневой копии символической ссылки, он возвращает следующую ошибку:
symlink has no referent: "/cygdrive/e/latest-data-shadow-copy"
это команда rsync, которую вызывает rsnapshot:
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded --chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r --rsh=/usr/bin/ssh 'user@windowsip:/cygdrive/e/latest-data-shadow-copy/data-folder/' /media/backup-drive-1/.sync/
однако, если я пытаюсь использовать scp
для копирования файлов из Тома теневого копирования с символическими ссылками он работает нормально:
scp user@windowsip:/cygdrive/e/latest-data-shadow-copy/data-folder/test-file.txt test-file.txt
как насколько я могу понять, это, похоже, предполагает, что причина ошибки rsync заключается в том, что она выполняется в chroot на сервере Windows, не позволяя ему получить доступ к тому теневой копии с символическими ссылками.
я пытался создать /etc/rsync.conf
и добавил:
use chroot = no
но это не влияет на ошибку. Я предполагаю, что это связано с тем, что это файл конфигурации для демона rsync, который я не запускаю.
вопросы
- что предотвращение
rsync
из доступа к символической теневой копии в то время какscp
доступ к файлам без проблем? - если проблема
use chroot
настройка rsync, как ее изменить, если демон rsync не запущен?
Спасибо за ваши ответы заранее!