Назад | Перейти на главную страницу

Использование rsync для резервного копирования файлов Windows Server 2008 R2 в Ubuntu, использование plink для SSH

Я пытаюсь настроить rsync для резервного копирования файлов из ящика Windows Server 2008 R2 в ящик Ubuntu. Все (не тестовые) данные должны быть зашифрованы.

Мне удалось заставить его работать, используя только rsync, получая дату с порта 873, но у меня также возникают проблемы с использованием plink.

Вот моя конфигурация:

Ubuntu

rsyncd.conf:

log file = /var/log/rsync.log
[ukwindb1backup]
   path = /home/ukwindb1/rsync
   comment = Backup
   uid = ukwindb1
   gid = ukwindb1
   use chrott = true
   read only = false
   auth users = ukwindb1
   secrets file = /etc/rsyncd.secrets

Rsync deamon был запущен, и есть учетная запись «ukwindb1» с открытым ключом SSH для аутентификации. Весь трафик SSH идет на другой порт, а не на 22.

Пароль для «ukwindb1», хранящийся в файле rsyncd.secrets, отличается от пароля для учетной записи Ubuntu (хотя пароли отключены для входа по SSH).

Windows Server

У меня установлен cygwin, и мне удалось заставить работать rsync, используя этот командный файл:

rsync.exe -qrtz --password-file=/home/Administrator/secret --delete "/cygdrive/c/Backups" ukwindb1@[removed-ip]::ukwindb1backup
pause

У меня также установлены программы Putty, и я хочу использовать plink для подключения к другому серверу, чтобы я мог использовать Pageant для управления своими ключами с паролем.

Я попробовал этот командный файл, чтобы подключиться к SSH-серверу с помощью plink, и он работал нормально:

plink -ssh -P [removed-port] -l ukwindb1 -i C:\ukwindb1.ppk [removed-ip]
pause

Теперь, когда я попробовал этот командный файл для объединения этих двух элементов, ничего не вышло:

rsync.exe -qrtz -e "plink -ssh -P [removed-port] -l ukwindb1 -i C:\ukwindb1.ppk [removed-ip]" --delete "/cygdrive/c/Backups" ukwindb1@[removed-ip]::ukwindb1backup
pause

Любые идеи? Что именно я делаю не так?

К тому же:

Действительно ли мне нужен демон rsync?

Могу ли я указать каталог на сервере со стороны клиента, а не ":: ukwindb1backup"?

Я думаю ты можешь пропустить rsyncd и plink полностью, немного изменив вашу архитектуру (что будет иметь другие преимущества).

я полагаю, что rsyncd На самом деле демону не нужно запускать для выполнения базовой rsync в целях резервного копирования. rsync обычно просто подключается к другому устройству через SSH, запускает экземпляр rsync на дальней стороне, а два rsyncразговаривают друг с другом по ssh - rsyncd демон на самом деле не участвует. rsyncd обычно используется для обслуживания контента для загрузки несколькими клиентами (например, зеркальным сервером).

В этой настройке я предполагаю, что ящик, получающий резервную копию (ящик Ubuntu), является более «надежной» системой (с точки зрения безопасности) - не потому, что это Ubuntu, а потому, что серверы резервного копирования, естественно, должны хранить данные для нескольких важных хосты. Поэтому я бы рекомендовал начать rsync из окна Ubuntu и установив отношения доверия между ключами, чтобы окно Windows доверяло блоку Ubuntu, а не наоборот. Это означало бы настройка sshd под Cygwinи заблокировать его (с помощью брандмауэра на основе хоста), чтобы разрешались только подключения с вашего резервного сервера.

Затем вы можете просто выполнить:

rsync -qrtz windowsbox:/path/to/files /path/to/ubuntu/backups

... который также демонстрирует, как указать каталог на обслуживающей стороне.

В качестве следующего шага по устранению неполадок я бы отказался от попыток использовать rsyncd, временно исключив аутентификацию на основе ключей, как вы это делали ранее при устранении неполадок, и просто попробуйте простой rsync (из пары тестовых файлов) с использованием аутентификации на основе пароля.

Как только вы начнете работать с базовой синхронизацией, вы также захотите взглянуть на rsyncс --modify-window вариант, который будет игнорировать небольшой сдвиг в метках времени, который может возникнуть из-за различий в том, как Windows и Unix-подобные обрабатывают секунды в метках времени. В противном случае файлы, которые иначе можно было бы пропустить, будут копироваться снова и снова.

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