3

Я хочу скопировать файл (home/remote_computer_user/Desktop/test1.txt) со своего компьютера в удаленном офисе (постоянный URL + открытый порт) на мой домашний компьютер (home/home_computer_user/Downloads/).

Как я могу сделать это с помощью команд оболочки в Linux?

Мои нынешние мысли:

  1. ssh <user>@<computer1address> -p <port> - выдает оболочку на удаленном компьютере
  2. (Я думаю, что я должен использовать scp , но я не знаю, как именно, как в моем случае)

Какие именно команды я должен использовать?

4 ответа4

4

Это должно быть что-то вроде:

scp -P <port> user@comp1:Desktop/test1.txt ~/Downloads/

Запустите это на своем домашнем ПК.

Надеюсь, что это поможет вам.

1

scp работает, но вы также можете использовать rsync:

rsync -e 'ssh -p <port>' <user>@<computer1address>:Desktop/test1.txt ~/Downloads/

Большую часть времени rsync является заменой scp , то есть с большинством команд scp вы можете просто заменить scp на rsync и он будет работать так же. Единственная причина, которая не соответствует действительности в вашем случае, заключается в том, что rsync не имеет опции -p для указания порта (ну, это так, но она применяется, только когда rsync подключается через собственный протокол, а не через ssh). Поэтому вы должны указать ему использовать альтернативную команду ssh, которая включает порт.

Если ваш ssh-сервер использует стандартный порт или если вы настроили порт в ~/.ssh/config (в любом случае это означает, что вам не нужно использовать опцию -p при соединении с ssh), вы можете просто беги

rsync <user>@<computer1address>:Desktop/test1.txt ~/Downloads/

В общем, я предпочитаю rsync scp потому что у него гораздо больше опций, и потому что, если вы передаете большое количество файлов, rsync имеет смысл пропустить те, которые уже существуют в целевой системе, сокращая объем данных это должно быть передано.

0

Если у вас есть FTP или SCP, используйте его. Это удобнее. Если вы ограничены ssh (как я на многих встроенных системах)

Загрузить один файл:

 ssh login@remotehost -p remoteport "cat >filename" <filename

Скачать один файл:

 ssh login@remotehost -p remoteport "cat filename" >filename

Загрузить каталог

 tar -cf - dirname | ssh login@remotehost -p remoteport "tar -xf -"

Скачать каталог

 ssh login@remotehost -p remoteport "tar -cf - dirname" | tar -xf - 

Вместо dirname вы можете указать несколько файлов, каталогов или шаблон для сопоставления. Остерегайтесь абсолютных путей.

0

Альтернативой scp, которая может быть более знакомой и более подходящей для передачи нескольких файлов, является sftp. Он поставляется со всеми основными версиями ssh, с которыми я сталкивался.

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