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

Невозможно использовать rsnapshot для синхронизации чужих файлов, но можно сделать это с помощью простой команды rsync

Я пытаюсь использовать rsnapshot для синхронизации удаленного файла с моим компьютером. Однако у меня возникают проблемы, когда мне нужно получить доступ к файлам, которые не принадлежат пользователю, подключенному по SSH к удаленному компьютеру.

Мой /etc/rsnapshot.conf выглядит так:

config_version  1.2
snapshot_root   /shared/.backup/
cmd_cp          /bin/cp
cmd_rm          /bin/rm
cmd_rsync       /usr/bin/rsync
cmd_ssh         /usr/bin/ssh
cmd_logger      /usr/bin/logger
cmd_du          /usr/bin/du

retain      hourly  6
retain      daily   7
retain      weekly  4
retain      monthly 3

verbose     2
loglevel    5
logfile     /shared/.backup/rsnapshot.log

ssh_args    -i ~/.ssh/id_rsa -p 62222

# BACKUP DEFINITIONS
backup  username@10.10.11.11:/          dev.local.root/     exclude_file=/shared/.backup/exclude.root,+rsync_long_args=--rsync-path='sudo rsync',rsync_short_args=-zalhHx

После запуска rsnapshot hourly Я вижу эту ошибку:

bash: sudo rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: remote command not found (code 127) at io.c(226) [Receiver=3.1.0]
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot hourly
----------------------------------------------------------------------------
ERROR: /usr/bin/rsync returned 127 while processing username@10.10.11.11:/

Если я проверю свой rsnapshot.log файл, я вижу это rsnapshot попробовал эту команду:

/usr/bin/rsync -zalhHx --delete --numeric-ids --relative --delete-excluded --exclude-from=/shared/.backup/exclude.root --rsync-path='sudo rsync' --rsh=/usr/bin/ssh -i ~/.ssh/id_rsa -p 62222 username@10.10.11.11:/ /shared/.backup/hourly.0/dev.local.root/

Если я попытаюсь запустить ту же команду в терминале, я получаю такую ​​ошибку:

Unexpected remote arg: username@10.10.11.11:/
rsync error: syntax or usage error (code 1) at main.c(1348) [sender=3.1.0]

Однако, если я поставлю кавычки --rsh часть все работает нормально:

/usr/bin/rsync -zalhHx --delete --numeric-ids --relative --delete-excluded --exclude-from=/shared/.backup/exclude.root --rsync-path='sudo rsync' --rsh='/usr/bin/ssh -i ~/.ssh/id_rsa -p 62222' username@10.10.11.11:/ /shared/.backup/hourly.0/dev.local.root/

Некоторые факты

Итак .... Мой вопрос прост: как мне правильно построить это rsync командовать в rsnapshot?
Спасибо за помощь!

У меня была точно такая же ошибка, я был вынужден указать ручной скрипт

--rsync-path='sudo rsync' > --rsync-path='/usr/local/bin/rsync'

с / usr / local / bin / rsync на удаленном

#! /bin/sh
exec /usr/bin/sudo /usr/bin/rsync "$@"