Недавно я не смог сделать rsync через ssh. Каждый раз получаю одну и ту же ошибку
bash: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]
Я бегаю
sudo rsync -av /var/www/html/somedir/ [email protected]:Users/myuser/Desktop/ec2backup
Обратите внимание, что имя пользователя, IP-адрес и каталоги были изменены для целей данного поста.
Раньше я запускал точно такую же команду, как и проверено с помощью bash_history.
Что я пробовал:
- Запустил аналогичную команду с другого сервера, в результате чего появилось то же сообщение об ошибке.
- Протестировал rsync локально (локальный каталог в локальный каталог), все прошло отлично.
Единственное, что изменилось, это то, что я недавно установил Virtualbox и Vagrant. Возможно ли, что я напутал с аутентификацией/портами/и т. д. на своей локальной машине?
Любая помощь будет высоко оценена.
решение1
rsync не установлен на 999.999.99.9
решение2
Моя проблема заключалась в том, что я использовал cwrsync_6.2.1_x64 совместно с SSH_for_Windows_7.7p1, LibreSSL 2.6.5, который был предустановлен в win10 2004 build 19041.685.
в вашей команде rsync вам нужно указать на ssh.exe, который идет с этой конкретной сборкой rsync. Например:
rsync -avHz -e "path_to\cwrsync_6.2.1_x64_free\bin\ssh.exe" --partial ...
решение3
Я получил эту ошибку, когда целевой каталог не существовал заранее. С исходным файлом данных: /a/b/c/d/data, rsync -av -e ssh /a/b/c/d/ hostname:/a/b/c/d требует, чтобы целевой каталог: hostname:/a/b/c уже существовал.
Прочитав страницу руководства в качестве последнего средства, я понял, что это и есть предполагаемое поведение.
решение4
Используя cygwin, я выполнил команду «which rynsc», и результатом стал rsync, предоставленный программой установки cygwin. Ранее я установил rsync через программу установки Cygwin. Однако, когда я сделал это из Cygwin, «which ssh», он указывал на ssh пути Windows. Поэтому я вышел из Cygwin, выполнил программу установки cygwin и установил ssh из cygwin. После этого я снова выполнил те же две предыдущие команды (which rsync и which ssh), и оба двоичных файла указывали на двоичные файлы cygwin. Затем, когда я выполнил свою rsync из cygwin, она заработала без каких-либо проблем.