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

Не могу понять ошибки Rsync с помощью ssh

Я хочу впервые попробовать Rsync, но столкнулся с трудностями.

Я хочу перенести файлы с удаленного сервера на локальный.

Я вхожу на свой локальный сервер и набираю:

sudo rsync -avz ssh ubuntu@xx.xxx.xx.xx /var/www/html/mywebsite.co.uk /var/www/html/

Это означает, что я хочу скопировать папку mywebsite.co.uk с удаленного сервера в папку / var / www / html на моем локальном сервере.

Оба сервера настроены на использование одного и того же ключа ssh.

Я получаю следующие ошибки:

sending incremental file list
rsync: link_stat "/var/www/html/ssh" failed: No such file or directory (2)
rsync: link_stat "/var/www/html/ubuntu@xx.xxx.xxx.xx" failed: No such file or directory (2)

sent 55 bytes  received 13 bytes  136.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]

Кто-нибудь может помочь мне разобраться в этих ошибках?

Заранее спасибо!

Ваш синтаксис неверен. Должно быть

sudo rsync -avz -e ssh ubuntu@xx.xxx.xx.xx:/var/www/html/mywebsite.co.uk /var/www/html/

Отсутствует оператор -e для ssh. И вам нужно двоеточие после ip-адреса.

попробуйте синтаксис ниже

rsync -e ssh -avz ubuntu@xx.xxx.xx.xx:/var/www/html/mywebsite.co.uk root@50.23.148.226:/var/www/html/

Также вы можете указать ключ и порт ssh, если необходимо

rsync -e "ssh -p PORT_NO -i path_to_file" -avz ubuntu@xx.xxx.xx.xx:/var/www/html/mywebsite.co.uk root@xx.xx.xxx.xx:/var/www/html/

При указании удаленного местоположения с помощью SSH (что требует -e ssh, в противном случае он использует собственный протокол rsync и требует, чтобы на другом конце был запущен сервер / демон rsync), вы должны написать его по следующему шаблону:

[user@]short_name[.domain]:[path]

Если вы опустите user@ он будет предполагать, что удаленный пользователь тот же, что и на локальном компьютере. Если вы не укажете .domain он будет использовать настройки поиска вашего домена (как и любое другое разрешение имен). Если вы не укажете path он будет использовать домашний каталог удаленного пользователя (Примечание: это то же самое, что и запись user@server:~ )

Итак, вам просто нужно заменить пространство двоеточием : как написал Grumpy в своем ответе.