2009-12-12 20:49:15 +0000 2009-12-12 20:49:15 +0000
30
30

Как загрузить файл из командной строки по FTP или SSH?

Я никогда не делал этого раньше, и я создаю сценарий bash shell, чтобы сделать это за меня. Я также буду соединяться через ssh, чтобы сделать некоторые вещи (которые я уже знаю, как делать). Так может быть есть способ загрузить файлы по ssh, чтобы я мог делать все это в одном соединении?

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

#!/bin/sh

cd ./files-to-upload
#upload the files

Ответы (7)

56
56
56
2009-12-12 20:53:32 +0000

Вы можете использовать scp для копирования на удаленную машину.

scp <file to upload> <username>@<hostname>:<destination path>
6
6
6
2009-12-12 20:57:38 +0000

Вы, наверное, ищете SCP или что-то в этом роде.

#!/bin/bash

cd ./files-to-upload
scp * user@host:/path/to/upload/files/to

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

4
4
4
2009-12-16 12:08:36 +0000

Если вы действительно должны использовать ssh (вместо scp) вы можете сделать:

for filename in *; do
  cat $filename | ssh user@host "cd /path/to/upload/files/to; cat - > $filename"
done

, но обычная scp (например, касательная предложение) - это лучший вариант.

1
1
1
2009-12-13 07:15:17 +0000

scp - это лучший ответ, так как он будет зашифрован через SSH.

Однако, если вы хотите сделать это через стандартный ftp, посмотрите на ncftpput. Он разработан специально для загрузки файла:

ИМЯ ncftpput - программа передачи файлов через Интернет для скриптов

SYNOPSIS ncftpput [опции] локальные файлы удаленного хоста…

0
0
0
2015-09-04 18:22:34 +0000

Когда вы используете команду scp (безопасная копия), он подключается к клиенту, и если у вас еще нет отпечатка пальца, сохраненного для хост-устройства, он запросит у вас пароль хоста, в противном случае он должен автоматически подключиться к хосту, которому я верю.

0
0
0
2009-12-16 12:43:45 +0000

curl - хорошая программа, которая работает с несколькими протоколами.

0
0
0
2019-02-21 08:22:05 +0000

Для экземпляра ec2, вы должны передать файл .pem также,

$scp -i ~/Desktop/amazon.pem ~/Desktop/file.zip ubuntu@ec2-54-166-128-20.compute-1.amazonaws.com:~/data/

Pytania pokrewne

19
12
11
7
8