Come caricare un file dalla riga di comando con FTP o SSH?


30

Non l'ho mai fatto prima e sto creando uno script bash shell per farlo per me. Mi collegherò anche via SSH per fare alcune cose (che già so fare). Quindi forse c'è un modo per caricare file tramite ssh in modo da poterlo fare tutto in una connessione?

Come posso fare questo?

#!/bin/sh

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

Ciò non risponde a questa domanda, ma forse questo potrebbe aiutare alcune persone: curl.io ti consente di caricare un file tramite bash su un hosting http pubblico (valido per poche ore credo)
Vincent Fenet,

Risposte:


56

È possibile utilizzare scpper copiare su una macchina remota.

scp <file to upload> <username>@<hostname>:<destination path>

la password può essere passata anche con questo? Inoltre, questo inizializza una sessione ssh? Posso eseguire anche altri comandi?
Andrew,

2
No, non è possibile passare la password. Ma puoi impostare l'autenticazione con chiave ssh. Ciò significa che non esegui l'autenticazione tramite una password ma tramite una chiave memorizzata in un file e trasmessa automaticamente alla connessione. E no, non puoi eseguire altri comandi con questo.
Felix,

Voglio dire, puoi connetterti con SSH, quindi eseguire SCP? O sono comandi separati?
Andrew,

2
sshe scpsono comandi diversi. Per un'introduzione vedere ssh.com/support/documentation/online/ssh/adminguide/32/...
Tangens

1
@Felix avrebbe dovuto far notare che se non hai impostato l'autenticazione con chiave ssh, ti verrà richiesta una password . Ciò significa che avere
quell'impostazione

6

Probabilmente stai cercando SCP o simili.

#!/bin/bash

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

ovviamente questo deve essere modificato a proprio piacimento. Sostituisci user @ host con le tue informazioni reali. Ti verrà richiesta una password da caricare.


4

Se devi davvero usare ssh (invece di scp) puoi fare:

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

ma scp regolare (come il suggerimento di tangens ) è il migliore.


Sto usando una connessione FTp, potresti dirmi come trasferire o copiare i file da locale a remoto, sto usando filezilla o winscp ... ho bisogno di estrarre una zip o una copia da locale a remoto
Sushivam

1

scp è la risposta migliore poiché sarebbe crittografata su SSH.

Tuttavia, se vuoi farlo su ftp standard, guarda ncftpput. È progettato specificamente per caricare un file:

NAME ncftpput - Programma di trasferimento file Internet per script

SINOSSI ncftpput [opzioni] file locale host directory remota host remoto ...



0

Quando si utilizza il scpcomando (copia protetta) si connette al client e se non si dispone già di un'impronta digitale salvata per il dispositivo host, verrà richiesta la password dell'host, altrimenti dovrebbe connettersi automaticamente all'host, credo.


0

Per esempio ec2, devi passare anche il .pemfile,

$scp -i ~/Desktop/amazon.pem ~/Desktop/file.zip  ubuntu@ec2-54-166-128-20.compute-1.amazonaws.com:~/data/
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.