2

У меня есть 2 виртуальные машины. Первая виртуальная машина - это место, где хранятся исходные файлы. Вторая виртуальная машина находится там, где находится мой bash-скрипт, и она должна копировать файлы из источника на мою вторую виртуальную машину.

Как я могу сделать это в Bash?

Можно ли SCP-файлы с 1-й виртуальной машины на 2-ю виртуальную машину в Bash, когда мой скрипт выполняется на 3-й машине? Если так, пожалуйста, покажи мне, как это сделать.

3 ответа3

3

Это возможно (если оба хоста прослушивают SSH, а первый удаленный хост видит второй)! Почему бы тебе не попробовать?

scp remote1:/path/to/file remote2:/path/to

Возможно, вам потребуется указать имена пользователей и / или пароли для обоих хостов (если ваше имя пользователя зависит от компьютера).

Если вы используете агентную аутентификацию с включенной переадресацией агента, вам не нужно указывать какие-либо пароли (это мой предпочтительный метод работы).

Обратите внимание, что это не имеет ничего общего с Bash (или даже с виртуальными машинами) и должно работать в любой оболочке.

1

Обычный способ сделать это - подключиться по ssh к одной из удаленных машин и запустить scp оттуда.

#3rd-vm> ssh 2nd-vm
#2nd-vm> scp file 1st-vm:~/
0

Если вам нужно подключить его через 3-ю машину, вы можете сделать это с помощью ssh:

ssh remote1 cat file | ssh remote2 'cat > file'

Или с дегтем:

ssh remote1 tar cf - path/to/copy | ssh remote2 tar xf - -C path/to/dest

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .