Я знаю, что есть два или более метода работы с rsync
:
Первый требует, чтобы rsync был установлен на целевом компьютере, а затем вы можете запустить что-то вроде этого:
rsync -avz file username@machine_ip:/path/to/destination
И я знаю еще один метод, который требует настройки /etc/rsyncd.conf
на конечном компьютере и настройте «общие ресурсы rsync».
Пример:
[test]
comment = /tmp/test
path = /tmp/test
read only = no
list = yes
uid = 10155
gid = 10015
auth users = appadmin
secrets file = /etc/rsyncd.secrets
hosts allow = 10.13.1.1
Тогда команда будет выглядеть так:
rsync -raPv files rsync://appadminp@10.13.1.2/rsync_share --password-file /etc/rsync.passwd
Моя цель - синхронизировать между двумя каталогами, когда целевой компьютер является удаленным.
Я хотел знать, каковы преимущества каждого метода и какой способ рекомендуется использовать. rsync
?
Первый подход позволяет вам контролировать то, что вы синхронизируете, со стороны клинета.
Второй подход настраивает «сервер» rsync, который управляет тем, что вы можете синхронизировать.
Есть третий подход, и я использую его вместо этого: rsync-over-ssh (rsync -e ssh [остальные параметры]), и есть трюк, с помощью которого вы можете ограничить то, что действительно может быть получено на стороне сервера. Обычно я обычно проверяю синхронизацию через ssh, а затем, когда меня устраивает результат, я запускаю ту же команду через strace (strace -f -s512 -o ~ / strace.log -eexecve rsync ...). Файл strace.log будет содержать строку, которую rsync выполняет через ssh, возьмите эту строку и добавьте ее в удаленный файл ~ / .ssh / authorized_keys как command = "rsync_line_goes_here" перед соответствующим ключом :). С этого момента конфигурация rsync «заблокирована» и позволяет использовать только эту конфигурацию по этой ссылке.