Проблема с синтаксисом scp

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

Каталог архива, который я хочу скопировать:

canserhan@embserv:~/tar_files/rtl_archive.tar

Место назначения:

serhan@serhan-Lenovo-B560:~/Documents$ 

Я подключаюсь к удаленному серверу и использую команду:

canserhan@embserv:~/tar_files$ scp canserhan@embserv:~/tar_files/rtl_archive.tar serhan@serhan-Lenovo-B560:~Documents$
Password:
ssh: serhan-Lenovo-B560: Name or service not known
lost connection
canserhan@embserv:~/tar_files$ 
[ 117] Должно быть что-то не так с синтаксисом scp, который я использую. Однако я не мог понять это. Не могли бы вы помочь мне?

Спасибо.

2
задан 09.01.2020, 08:23

4 ответа

Как правило, если вы хотите отправить что-то на удаленный сервер через scp:

scp some_files.tar user@remoteHost:
scp some_files.tar user@remoteHost:Documents/newname.tar

Но если вы хотите что-то скачать:

scp user@remoteHost:Documents/foo.tar ~/Desktop
scp user@remoteHost:/any/other/dir/foo.tar .
3
ответ дан 09.01.2020, 08:25

Со страницы руководства scp:

 -3      Copies between two remote hosts are transferred through the local
         host.  Without this option the data is copied directly between
         the two remote hosts.  Note that this option disables the
         progress meter.

Я бы предположил, что проблема в том, что ваш компьютер embserv не может «видеть» ваш другой компьютер serhan-Lenovo-B560, или, если это возможно, он не может разрешить имя.

Когда вы вызываете scp с двумя удаленными машинами, то, что он на самом деле пытается сделать, это что-то , например, , это:

ssh canserhan@embserv "scp ~/tar_files/rtl_archive.tar serhan@serhan-Lenovo-B560:~Documents$"

Это хорошо, так как это означает, что копия будет более эффективный, но он требует, чтобы scp с машины A на машину B работал, что не всегда.

Если это проблема, вы можете решить ее, используя -3, или передав числовой IP-адрес serhan-Lenovo-B560 (если имя является проблемой), или исправив настройку ssh на embserv так что он может достичь serhan-Lenovo-B560.

РЕДАКТИРОВАТЬ:

Итак, попробуйте это:

scp canserhan@embserv:~/tar_files/rtl_archive.tar serhan@xxx.xxx.xxx.xxx:~Documents$

где xxx.xxx.xxx.xx - IP-адрес вашего сервера.

или, если это не поможет, это определенно должно работать, но будет работать медленнее:

scp -3 canserhan@embserv:~/tar_files/rtl_archive.tar serhan@serhan-Lenovo-B560:~Documents$

Кстати, ~Documents$ также выглядит неправильно. Вы уверены, что это не должно быть ~/Documents?

1
ответ дан 09.01.2020, 08:23
  • 1
    Если Вы помещаете двоеточие : на конец тогда scp, думает it' s название машины. Если Вы don' t тогда это принимает it' s имя файла. Так, scp ~/tar_files/rtl_archive.tar 2xx.1xx.1x.8x точно то же, как будто Вы использовали cp. I' ll редактируют мой ответ. – Ry4an Brase 09.01.2020, 08:23
  • 2
    +1 для-3 битов. Я мог ssh в машину, но scp давал " не Мог разрешить имя узла xxx: Имя или сервис не known". Используя-3 опции зафиксировал его. – Ry4an Brase 09.01.2020, 08:24
  • 3
    Я пытался передать числовой IP-адрес следующим образом (снова, я думаю, что сделал что-то не так с синтаксисом): canserhan@embserv:~ $ scp ~/tar_files/rtl_archive.tar 2xx.1xx.1x.8x Однако это создало каталог, названный 2xx.1xx.1x.8x, и скопировало ~ / tar... к тому каталогу. Но когда я сделал ls 2xx.1xx.1x.8x, он не сказал такого каталога, и также он позволил мне удалить тот каталог. Я ничего не понял. Если тот каталог никогда не существовал тогда, каким образом я мог удалить его? Был похож на что-то временный файл? Также я не мог решить свою проблему при помощи-3. Как я могу закрепить свою установку ssh на embserv? – Ry4an Brase 09.01.2020, 08:24

Я полагаю, что у вас нет DNS в вашей сети. Похоже, что он не может разрешить ваше имя. .

$ scp canserhan@embserv:~/tar_files/rtl_archive.tar serhan@<remote-ip>:~Documents

Кроме того, попробуйте указать полный / абсолютный путь вместо ~.

0
ответ дан 09.01.2020, 08:24

Попробуйте выполнить команду:

scp ~/tar_files/rtl_archive.tar serhan@serhan-Lenovo-B560:~/Documents/

embserv - ваш локальный компьютер. Если вы напишите scp server1:/path/to/file server2:/path/to/second/file, это даст команду scp скопировать файл с одного сервера на второй. Если вы хотите скопировать локальный файл на сервер или наоборот, просто пропустите двоеточия : и имя машины. В дополнение к этому ~ должен сопровождаться косой чертой в вашем случае. ~ переводится как /home/username/.

1
ответ дан 09.01.2020, 08:25
  • 1
    Окончание команды user@hostname:~/Documents/ совпадает с user@hostname:Documents/ . целевой путь по умолчанию /home/< user> / . – Rembrandt Q. Einstein 09.01.2020, 08:25

Теги

Похожие вопросы