GNU/Linux >> Linux Esercitazione >  >> Linux

4 modi per trasferire file e directory su Linux

In qualità di amministratore di sistema Linux, esistono molti modi diversi per trasferire file , in modo sicuro o meno, tra due host diversi.

Durante il tuo lavoro quotidiano, ti potrebbe essere chiesto di eseguire alcuni grandi trasferimenti tra due server distanti.

Potrebbe essere necessario fare il backup di un intero database su un'unità di condivisione sicura, oppure potresti semplicemente voler ottenere un file remoto sul tuo sistema.

Di conseguenza, desideri trasferire file , ma vuoi farlo in un modo molto sicuro e protetto.

Fortunatamente per te, ci sono molti comandi diversi che puoi usare per raggiungere questo obiettivo.

In questo tutorial, vedremo tutti i diversi modi per trasferire file tra host su Linux utilizzando ftp, sftp, scp o rsync.

Pronto?

Ecco tutti i modi per trasferire file su Linux:

Trasferimento di file su Linux tramite ftp

Il primo modo per trasferire file su Linux è utilizzare ftp comando .

Per impostazione predefinita, il protocollo FTP utilizza il protocollo TCP che è non protetto .

Significa che se qualcuno dovesse tracciare dati o pacchetti inviati sulla rete, sarebbe in grado di vedere cosa stai inviando a host remoti.

Nella maggior parte dei casi, questo non è qualcosa che desideri per i tuoi trasferimenti di file, specialmente quando vengono eseguiti su Internet.

Tuttavia, forniremo ancora la sintassi per il comando ftp poiché può essere utile utilizzarlo per semplicità su reti locali.

Per impostazione predefinita, la tua distribuzione potrebbe non avere il comando ftp installato per impostazione predefinita.

Per verificare se ftp è installato sul tuo host, puoi eseguire il seguente comando

$ command -v ftp

Se non ti vengono forniti output, significa che l'ftp non è disponibile sul tuo sistema.

Installazione di ftp su distribuzioni basate su Debian

Per installarlo su Debian -based distribuzioni, eseguire il comando seguente

Per installare nuovi pacchetti, devi disporre dei privilegi sudo sulla tua distribuzione Debian

$ sudo apt-get install ftp

Dopo l'installazione, esegui nuovamente il comando "command" per assicurarti che sia correttamente disponibile sul tuo sistema.

$ command -v ftp
/usr/bin/ftp

Installazione di ftp su distribuzioni basate su Red Hat

Per installare ftp su distribuzioni basate su Red Hat, devi eseguire i seguenti comandi

Per installare nuovi pacchetti su RHEL o CentOS , devi disporre dei privilegi sudo sulla tua distribuzione CentOS.

$ sudo yum install ftp

Ancora una volta, esegui il comando "command" per verificare che i tuoi pacchetti siano stati installati correttamente

$ command -v ftp
/usr/bin/ftp

Connettiti a host remoti con ftp

Per connetterti a host remoti usando il comando ftp, devi usare la seguente sintassi

$ ftp <destination_ip>

Quando ti connetti, questo è ciò che dovresti vedere se ti stai connettendo a un server FTP non protetto.

Digita il nome utente che ti è stato assegnato per connetterti a questo server FTP.

Ti verrà chiesto di inserire la tua password. Se le credenziali sono corrette, dovresti essere in grado di accedere direttamente al tuo server FTP.

Download di file su Linux tramite ftp

Quando sei connesso al tuo server FTP, ci sono molti modi per interagire con esso.

Prima di tutto, premi "? ” per vedere tutti i comandi a tua disposizione.

Come puoi vedere, i comandi disponibili sono praticamente identici a quelli che potresti trovare su un sistema Linux standard.

Per impostazione predefinita, sul tuo server FTP, ti verrà concesso un accesso alla shell FTP direttamente nella tua home directory.

Per vedere tutti i file disponibili nella directory corrente, esegui il seguente comando

$ ls

Come puoi vedere qui, sto elencando le voci della mia home directory.

Per navigare in una delle cartelle, premi il comando standard "cd" con il percorso in cui vuoi navigare.

Per scaricare un file dalla directory corrente, devi eseguire il seguente comando

$ get <file>

Il locale verrà copiato nella directory di lavoro corrente sulla macchina locale, ovvero il percorso da cui hai lanciato il comando ftp in primo luogo.

Come nota a margine, se vuoi scaricare più file dai tuoi host remoti, devi usare il comando "mget" con la seguente sintassi

$ mget <file1> <file2> ... <filen>

Congratulazioni!

Hai trasferito con successo un file dal tuo computer distante al tuo computer locale tramite FTP.

Caricare file su Linux usando ftp

Con FTP, puoi scaricare file dai tuoi host remoti ma puoi anche caricare file sui tuoi host remoti.

Per caricare file usando ftp, devi usare il comando “put” con la seguente sintassi

$ put <file>

Il tuo file dovrebbe ora essere accessibile sul tuo host remoto, nella home directory dell'utente che stai usando per trasferire i tuoi file.

$ ls /home/<user>
file.txt

Allo stesso modo, se vuoi caricare più file sui tuoi host remoti, puoi usare "mput" in questo modo

$ mput <file1> <file2> ... <filen>

Congratulazioni!

Hai trasferito con successo i file dal tuo host locale al tuo host remoto usando ftp.

Trasferimento di file utilizzando sftp su Linux

Un modo più sicuro per trasferire file tra due host consiste nell'usare il comando sftp.

Il comando sftp, che sta per "Secure File Transfer Protocol “, è un modo per trasferire file tra due host con traffico crittografato.

Di conseguenza, anche se qualcuno cattura il traffico tra te e l'host remoto, non sarà in grado di decrittografarlo senza avere accesso alle tue chiavi SSH.

Quando si utilizza il comando sftp, l'host su cui si sta tentando di scaricare o caricare file deve essere dotato di un server SSH.

Se stai utilizzando un server OpenSSH sul tuo host remoto, sarai in grado di connetterti ad esso per eseguire trasferimenti di file.

Per impostazione predefinita, sftp dovrebbe essere disponibile sul tuo sistema, ma puoi verificarlo eseguendo il comando seguente.

$ command -v sftp
/usr/bin/sftp

Connettiti a host remoti usando sftp

Per connetterti a host remoti usando sftp, devi usare la seguente sintassi

$ sftp <destination_ip>

Per impostazione predefinita, se è la prima volta che ti connetti a un host remoto, ti verrà chiesto di aggiungere l'host all'elenco degli host attendibili del tuo sistema (situato in /home/user/.ssh/known_hosts per impostazione predefinita)

Ora che sei connesso al tuo server SSH remoto, la sintassi per navigare o trasferire file è la stessa del comando ftp standard.

Download di file su Linux utilizzando sftp

Prima di tutto, puoi premere "?" per vedere tutti i comandi a tua disposizione sul server SSH.

Prima di tutto, premi il comando "ls" per vedere tutti i file e le cartelle disponibili sul sistema remoto.

$ ls

Come puoi vedere, questo comando elencherà l'intera cartella in cui mi trovo attualmente (che è la directory home in questo caso).

Per navigare in una cartella, premi il comando "cd" che normalmente farebbe su un server FTP standard.

$ cd <path>

Per scaricare un file su un server SFTP, usa il comando "get" usando questa sintassi

$ get <file>

Il file verrà copiato dalla directory remota corrente alla directory locale in cui è stato lanciato il comando sftp.

Congratulazioni! Hai trasferito correttamente i file dal tuo host remoto al tuo computer locale.

Caricare file su Linux usando sftp

In alternativa, puoi trasferire file dal tuo computer locale al tuo host remoto.

Per trasferire file usando sftp, devi usare il comando "put".

$ put <file>

Se elenchi le voci della tua directory remota, dovresti essere in grado di vedere il tuo file.

$ sftp> ls -l

Congratulazioni!

Hai trasferito con successo i file dal tuo host locale al tuo computer remoto.

Trasferimento di file su Linux utilizzando scp

Uno degli altri modi per trasferire file tra due host su Linux è usare il comando scp.

$ scp <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Il comando scp stabilisce una connessione sicura tra i due host e utilizza la porta SSH standard per trasferire i file.

Di conseguenza, per trasferire il file sarà necessario disporre di un server SSH in piedi sull'host di destinazione.

Ad esempio, per trasferire un file locale dalla macchina corrente a un host remoto, eseguire il comando seguente

$ scp file [email protected]:file

Per impostazione predefinita, se non specifichi un percorso assoluto, i file verranno copiati direttamente nella home directory dell'utente con cui ti stai connettendo.

Ora, se controllo i file sul mio host remoto, il file dovrebbe trovarsi nella home directory dell'utente.

Trasferimento di directory su Linux utilizzando scp

Con il comando scp è anche possibile trasferire intere directory sull'host di destinazione.

Per copiare le directory, devi specificare l'opzione "-r".

Prendiamo l'esempio di una cartella denominata "directory" con 3 file al suo interno. Per copiarli, devi usare il seguente comando

$ scp -r directory [email protected]:.

Se ispezioni le directory sull'host di destinazione, dovresti essere in grado di vedere la directory trasferita.

Nota che se specifichi una directory personalizzata sulla destinazione, verrà creata se non esiste per impostazione predefinita.

Trasferimento di file tra due host remoti

Nell'esempio precedente, abbiamo utilizzato un host locale con un host distante che abbiamo contattato utilizzando il suo indirizzo IP.

Ora potresti dover trasferire file tra due host remoti situati a due indirizzi IP diversi.

Per trasferire file tra questi due host, esegui il seguente comando

$ scp <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Ad esempio, porterebbe a

$ scp [email protected]:file [email protected]:file

Tieni presente che in questo caso avrai bisogno di due server SSH su entrambe le istanze, altrimenti non funzionerà.

Utilizzo di scp con una barra di avanzamento

Per visualizzare le statistiche per il processo scp, devi specificare l'opzione "-v" (che sta per verbose)

$ scp -v <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Trasferimento di file su Linux utilizzando rsync

Infine, l'ultimo modo per trasferire file tra due host su Linux è usare il comando rsync.

Il comando rsync utilizza anche un protocollo sicuro poiché si basa sul protocollo SSH per il trasferimento dei dati. Può essere utilizzato in un'ampia varietà di modi, ma per questo tutorial ci concentreremo sui trasferimenti di file.

I comandi scp e rsync sono molto simili ma rsync fornisce molte più funzionalità per i trasferimenti di file. Ad esempio, puoi scegliere di includere determinati file escludendone altri. Puoi anche scegliere di mantenere le autorizzazioni o gli hardlink durante una copia.

Nel complesso, rsync è un superset del comando scp.

Per impostazione predefinita, il comando rsync potrebbe non essere installato sul tuo sistema. Per installarlo, segui queste istruzioni.

Installazione di rsync su distribuzioni basate su Debian

Per installare rsync, sarai un utente sudo sul tuo host.

Per installare rsync, esegui il seguente comando

$ sudo apt-get install rsync

Infine, esegui il comando per assicurarti che sia stato installato correttamente.

$ rsync --help

Installazione di rsync su distribuzioni basate su Red Hat

Per installare rsync su RHEL o su CentOS, esegui il seguente comando

$ sudo yum install rsync

Allo stesso modo, esegui l'opzione della guida per assicurarti che sia stata installata correttamente.

$ rsync --help

Utilizzo di rsync per trasferire file su Linux

Ora che rsync è installato correttamente sul tuo host, puoi usarlo nel modo seguente

$ rsync <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Ad esempio, per trasferire file da un host locale a una macchina remota, eseguire il comando seguente

$ rsync file [email protected]:file

Allo stesso modo, per copiare i file dal tuo host remoto al tuo computer locale, dovresti eseguire

$ rsync [email protected]:file file

Utilizzo di rsync per trasferire le directory su Linux

Con rsync, puoi anche trasferire directory complete da un host locale a uno remoto.

Devi solo aggiungere l'opzione "-r" alla tua sintassi attuale

$ rsync -r <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Quando si copiano le directory, c'è una regola di cui devi essere a conoscenza.

Quando specifichi la directory di origine, hai la possibilità di aggiungere una barra finale alla fine per copiare il contenuto della directory e non la directory stessa.

Per illustrarlo, supponiamo che tu abbia una directory denominata "directory", che desideri trasferire in una directory remota denominata "directory" sul tuo computer remoto.

Usando una sintassi finale, questo è ciò che otterresti sul tuo host remoto

$ rsync directory/ [email protected]:directory

Sull'host remoto

/home/user/
├── directory
    ├── file1
    ├── file2
    ├── file3

Tuttavia, se scrivi rsync senza una barra finale, ad es.

$ rsync directory [email protected]:directory

Sull'host remoto

/home/user/
├── directory
    ├── directory
        ├── file1
        ├── file2
        ├── file3

Di conseguenza, potresti voler includere le barre finali per impostazione predefinita quando copi i file da un host all'altro per evitare nomi di directory duplicati.

Utilizzo di rsync con barra di avanzamento

Un modo molto pratico per usare rsync è avere una barra di avanzamento associata ad esso per i trasferimenti lunghi.

Per avere una barra di avanzamento quando usi rsync, devi usare l'opzione "–progress" (per leggibile dall'uomo)

$ rsync --progress <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Conclusione

In questo tutorial hai imparato come trasferire facilmente file su Linux usando il comando ftp, i comandi sftp, scp o rsync.

Hai visto le differenze tra questi comandi e come possono essere utilizzati per trasferire directory complete.


Linux
  1. Trova file e directory su Linux con il comando find

  2. Trova file e directory in Linux come un professionista

  3. Copia file e directory in Linux

  4. Come trasferire file tra server in Linux utilizzando SCP e FTP

  5. Come rimuovere file e directory nella riga di comando di Linux [Tutorial per principianti]

Come comprimere file e directory in Linux

Come spostare file e directory in Linux (comando mv)

Comando Rm in Linux

3 modi per trovare file e directory in Linux

Trova facilmente file e directory su Linux

Nozioni di base sulla riga di comando di Linux:lavorare con file e directory