Como fazer upload de um arquivo a partir da linha de comando com FTP ou SSH?

29

Eu nunca fiz isso antes e estou criando um script de shell bash para fazer isso por mim. Eu também estarei conectando via ssh para fazer algumas coisas (o que eu já sei fazer). Então, talvez haja uma maneira de fazer upload de arquivos via ssh para que eu possa fazer tudo em uma conexão?

Como posso fazer isso?

#!/bin/sh

cd ./files-to-upload
#upload the files
    
por Andrew 12.12.2009 / 21:49

6 respostas

54

Você pode usar scp para copiar para uma máquina remota.

scp <file to upload> <username>@<hostname>:<destination path>
    
por 12.12.2009 / 21:53
6

Provavelmente você está procurando SCP ou similar.

#!/bin/bash

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

é claro que isso deve ser ajustado ao seu gosto. Substitua user @ host pela sua informação real. Você será solicitado a fornecer uma senha para upload.

    
por 12.12.2009 / 21:57
4

Se você realmente precisa usar o ssh (em vez do scp), você pode fazer:

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

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

    
por 16.12.2009 / 13:08
1

scp é a melhor resposta, pois seria criptografada por SSH.

No entanto, se você quiser fazer isso através do ftp padrão, veja o ncftpput. Ele foi projetado especificamente para fazer upload de um arquivo:

NAME        ncftpput - Programa de transferência de arquivos da Internet para scripts

SINOPSE        ncftpput [opções] arquivos locais do diretório remoto do host remoto ...

    
por 13.12.2009 / 08:15
0
O

curl é um bom programa que lida com vários protocolos.

    
por 16.12.2009 / 13:43
0

Quando você usa o comando scp (cópia segura), ele se conecta ao cliente e, se você não usa Já tenho uma impressão digital salva para o dispositivo host, ele irá pedir-lhe a senha do host, caso contrário, ele deve se conectar automaticamente ao host, eu acredito.

    
por 04.09.2015 / 20:22