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

Como carregar um ficheiro a partir da linha de comando com FTP ou SSH?

Nunca tinha feito isto antes e estou a criar um guião de bash shell para o fazer por mim. Estarei também a ligar-me via ssh para fazer algumas coisas (o que já sei fazer). Então talvez haja uma forma de carregar ficheiros via ssh para que eu possa fazer tudo numa só ligação?

Como posso fazer isto?

#!/bin/sh

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

Respostas (7)

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

Pode usar scp para copiar para uma máquina remota.

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

Provavelmente está à procura de SCP ou similar.

#!/bin/bash

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

claro que isto deve ser ajustado ao seu gosto. Substitua user@host pela sua informação real. Ser-lhe-á pedida uma palavra-passe para carregar.

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

Se tiver realmente de usar ssh (em vez de scp), pode fazê-lo:

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

mas o scp regular (como tangens sugestão) é o melhor.

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

scp é a melhor resposta, uma vez que seria encriptada sobre SSH.

Contudo, se quiser fazê-lo sobre ftp padrão, olhe para ncftpput. Foi concebido especificamente para carregar um ficheiro:

NOME ncftpput - programa de transferência de ficheiros da Internet para scripts

SYNOPSIS ncftpput [opções] ficheiros locais de directórios remotos…

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

Quando utiliza o comando scp (cópia segura) ele liga-se ao cliente e se ainda não tiver uma impressão digital guardada para o dispositivo anfitrião, ele pedir-lhe-á a palavra-passe do anfitrião, caso contrário deverá ligar-se automaticamente ao anfitrião que eu acredito.

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

(http://curl.haxx.se/docs/manual.html) é um bom programa que lida com vários protocolos.

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

Para o ec2 por exemplo, tem de passar também o ficheiro .pem,

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