GNU/Linux >> Linux Esercitazione >  >> Linux

4 modi per trasferire file tra sistemi remoti e locali su SSH

Prima o poi ti ritroverai in una situazione in cui dovrai caricare il file sul server remoto tramite SSH o copiare un file da esso.

Esistono vari modi per trasferire file su SSH. Discuterò i seguenti metodi qui:

  1. scp:comando legacy che è stato deprecato
  2. rsync:comando popolare per la sincronizzazione dei file
  3. sshfs:montaggio della directory remota su SSH
  4. Client sftp:strumento GUI per l'accesso ai file tramite SFTP

Per un trasferimento di file riuscito su SSH, devi

  • per avere accesso SSH tra le due macchine
  • per conoscere il nome utente e la password sulla macchina remota
  • Indirizzo IP o nome host (sulla stessa sottorete) della macchina remota

Detto questo, vediamo i metodi per copiare file tra sistemi remoti tramite SSH.

Metodo 1:usa il comando scp per copiare file su SSH

Ho letto che scp sarà deprecato. Tuttavia, è il mio strumento preferito per il trasferimento di file tra sistemi tramite SSH. Come mai? Perché la sua sintassi è simile al comando cp.

Vediamo come utilizzare il comando scp.

Copia file dal computer remoto al tuo computer locale

Ecco lo scenario. Vuoi copiare i file dal sistema Linux remoto al sistema attualmente connesso.

Ecco una sintassi generica che copia il file dalla directory home dell'utente sul sistema remoto alla directory corrente del sistema connesso localmente.

scp [email protected]_address:/home/username/filename .

Vedi la somiglianza con il comando cp? È quasi lo stesso tranne per il fatto che devi specificare nome utente e indirizzo IP con i due punti (:).

Ora, lascia che ti mostri un esempio del mondo reale di questo comando.

Nell'esempio sopra, ho copiato il file remote.txt dal /home/abhishek/my_file directory sul sistema remoto nella directory corrente della macchina locale.

Questo dovrebbe darti un suggerimento che dovresti conoscere la posizione esatta del file sul sistema remoto. Il completamento delle schede non funziona su sistemi remoti.

Copia file dal tuo computer locale al computer remoto

Lo scenario è leggermente cambiato qui. In questo, stai inviando un file locale al sistema remoto tramite SSH usando scp.

Questa è una sintassi generica che copierà il nome del file nella directory home del nome utente sul sistema remoto.

scp filename [email protected]_address:/home/username

Nell'esempio sopra, ho copiato local.txt file dalla directory corrente alla directory home dell'utente abhishek sul sistema remoto.

Quindi ho effettuato l'accesso al sistema remoto per mostrare che il file è stato effettivamente copiato.

Puoi anche copiare le directory

Ricordi che ti ho detto che mi piace scp per la sua somiglianza con il comando cp?

Come il comando cp, puoi anche usare scp per copiare la directory su SSH. Anche la sintassi è simile al comando cp. Devi solo usare il -r opzione.

scp -r source_dir [email protected]_address:/home/username/target_dir

Puoi fare molto di più con esso. Leggi altri esempi di comando scp in questo tutorial:

Metodo 2:usa rsync per copiare file e directory su SSH

Poiché scp è deprecato, rsync è il miglior strumento successivo per copiare file tra sistemi remoti su SSH. In realtà, è meglio di scp in molti termini.

La sintassi del comando è la stessa di scp. Le versioni precedenti di rsync dovevano usare rsync -e ssh ma non è più così.

Copia file dalla macchina remota alla tua macchina locale

Supponiamo che tu voglia copiare un file dalla directory home dell'utente sul sistema remoto alla directory corrente del tuo sistema connesso localmente.

rsync [email protected]_address:/home/username/filename .

Prendiamo lo stesso esempio che hai visto con scp. Sto copiando il file remote.txt dal /home/abhishek/my_file directory sul sistema remoto nella directory corrente della macchina locale.

Copia file dal tuo computer locale al computer remoto

Ecco una sintassi generica che copierà il file nella directory home del nome utente sul sistema remoto.

rsync filename [email protected]_address:/home/username

È ora di vedere l'esempio del mondo reale. Sto copiando local.txt file dalla directory corrente alla directory home dell'utente abhishek sul sistema remoto.

Che ne dici di copiare le directory con rsync?

È lo stesso. Usa semplicemente -r opzione con rsync per copiare l'intera directory su SSH tra sistemi remoti.

rsync -r source_dir [email protected]_address:/home/username/target_dir

Dai un'occhiata a questo esempio. Copio l'intera directory my_file dal sistema remoto al sistema locale.

rsync è uno strumento versatile. È essenzialmente uno strumento per "sincronizzare ricorsivamente" i contenuti tra due directory e molto popolare per eseguire backup automatici.

Metodo 3:utilizzo di SSHFS per accedere ai file dal sistema remoto tramite SSH

C'è anche SSHFS (SSH Filesystem) che può essere utilizzato per accedere a file e directory remoti. Tuttavia, questo non è molto conveniente solo per copiare file.

In questo metodo, monti la directory remota sul tuo sistema locale. Una volta montato, puoi copiare i file tra la directory montata e il sistema locale.

Potrebbe essere necessario installare prima sshfs sul tuo sistema locale usando il gestore di pacchetti della tua distribuzione.

Su Debian e Ubuntu, puoi usare il seguente comando:

sudo apt install sshfs

Una volta che sshfs è installato sul tuo sistema, puoi usarlo per montare la directory remota. Sarebbe meglio creare una directory dedicata per il punto di montaggio.

mkdir mount_dir

Ora monta la directory desiderata sulla macchina remota in questo modo:

sshfs [email protected]_address:path_to_dir mount_dir

Una volta montato, puoi copiare i file in questa directory o da questa directory come se fosse sul tuo computer locale stesso.

cp local_file mount_dir

Ricorda che hai montato questo file. Una volta terminato il lavoro, dovresti anche smontarlo:

umount mount_dir

Ecco un esempio in cui ho montato my_file directory dal sistema remoto nella remote_dir directory sul sistema locale. Ho copiato il remote.txt file nel sistema locale e quindi smontare la directory.

Metodo 4:utilizzare un client SFTP basato su GUI per il trasferimento di file tra sistemi remoti

Come ultima risorsa, puoi utilizzare un client FTP per trasferire file tra sistemi remoti e locali.

FileZilla è uno dei client FTP multipiattaforma più popolari. Puoi installarlo facilmente sul tuo sistema locale.

Una volta installato, vai su File->Gestione sito e aggiungi i dettagli del sistema remoto come indirizzo IP, numero di porta SSH, nome utente e password.

Dopo esserti connesso, puoi vedere una vista a finestra divisa che mostra il filesystem locale a sinistra e il filesystem remoto a destra.

Per trasferire il file, trascina e rilascia i file da sinistra a destra o da destra a sinistra. Viene visualizzata una barra di avanzamento in basso.

Quale metodo preferisci?

Bene! Ho mostrato vari metodi della riga di comando e della GUI che possono essere utilizzati per copiare file su SSH.

Ora sta a te decidere quale metodo utilizzare qui. Commenta il tuo metodo preferito per il trasferimento di file su SSH.


Linux
  1. Trasferisci in modo sicuro file e cartelle tra computer utilizzando Croc

  2. Come trasferire file tra macchine locali e remote utilizzando il protocollo SFTP

  3. Comando SCP Linux – Come trasferire file SSH da remoto a locale

  4. Come scaricare e caricare file su SSH

  5. Utilizzo del protocollo SFTP per trasferire file tra macchine locali e remote

Come trasferire file con Rsync su SSH

SSHFS:come montare file system remoti su SSH

Trasferisci file tra Windows e Linux utilizzando la tua rete locale

Come trasferire file con Rsync su SSH

Trasferisci file e cartelle tra computer con Croc

4 modi per trasferire file e directory su Linux