SCP: Trasferire file over SSH
Sommario:
Quando si tratta di trasferire file tra sistemi sulla rete, gli utenti Linux e Unix hanno molti strumenti a loro disposizione.
Le maggior parte dei protocolli popolari per il trasferimento dati sono SSH e FTP. Mentre FTP è molto popolare, preferisci sempre usare SSH in quanto è il modo più sicuro per trasferire i tuoi file.
Esistono strumenti specializzati per il trasferimento di file su SSH come
scp
e
sftp
ma nessuno di questi ha tutte le funzionalità fornite da
rsync
.
rsync
può essere utilizzato per il mirroring di dati, backup incrementali, copia di file tra sistemi e così via.
In questo tutorial, spiegheremo come copiare i file con
rsync
su SSH.
Requisiti
-
Il
rsync
utilità deve essere installato su entrambi i sistemi di origine e di destinazione. Se non è installato è possibile installarlo tramite il gestore di pacchetti della vostra distribuzione:Ubuntu e Debian:
sudo apt install rsync
CentOS e Fedora:
sudo yum install rsync
Accesso SSH al computer remoto.
L'utente che esegue il comando
rsync
e l'utente SSH remoto devono disporre delle autorizzazioni appropriate per leggere e scrivere file.
Utilizzo di
rsync
per trasferire file su SSH
Con
rsync
, è possibile trasferire file e directory su SSH da e verso server remoti.
La sintassi generale per il trasferimento di file con
rsync
è la seguente:
Local to Remote: rsync… -e ssh… HOST:DEST Remote to Local: rsync… -e ssh HOST:SRC…
Dove
SRC
è la directory di origine,
DEST
è la directory di destinazione
USER
è il nome utente SSH remoto e
HOST
è l'host SSH remoto o l'indirizzo IP.
Le versioni più recenti di rsync sono configurate per utilizzare SSH come shell remota predefinita in modo da poter omettere l'opzione
-e ssh
.
Ad esempio, per trasferire un singolo file
/opt/file.zip
dal sistema locale nella directory
/var/www/
sul sistema remoto con IP
12.12.12.12
, eseguire:
rsync -a /opt/file.zip [email protected]:/var/www/
L'opzione
-a
sta per modalità archivio che sincronizza ricorsivamente le directory, trasferisce dispositivi speciali e blocca, conserva collegamenti simbolici, tempi di modifica, gruppo, proprietà e autorizzazioni.
Se il file esiste sul server remoto verrà sovrascritto. Se si vuole salvare il file con un nome diverso, specificare il nuovo nome:
rsync -a /opt/file.zip [email protected]:/var/www/file2.zip
Per trasferire i dati da un telecomando a un computer locale, utilizzare la posizione remota come origine e la posizione locale come destinazione:
rsync -a [email protected]:/var/www/file.zip /opt/
Il trasferimento di directory con
rsync
su SSH equivale al trasferimento di file.
È importante sapere che
rsync
offre un trattamento diverso alle directory di origine con una barra finale
/
. Quando la directory di origine presenta una barra finale,
rsync
copierà solo i contenuti della directory di origine nella directory di destinazione. Quando la barra finale viene omessa, la directory di origine verrà copiata all'interno della directory di destinazione.
Ad esempio, per trasferire la directory locale
/opt/website/images/
directory
/var/www/images/
su un computer remoto, digitare:
rsync -a /home/linuxize/images/ [email protected]:/var/www/images/
Utilizzare l'opzione
--delete
se si desidera sincronizzare la directory locale e remota. Prestare attenzione quando si utilizza questa opzione poiché eliminerà i file nella directory di destinazione se non esistono nella directory di origine.
rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/
Se SSH sull'host remoto è in ascolto su una porta diversa dalla
22
predefinita, specificare la porta utilizzando l'opzione
-e
. Ad esempio, se SSH è in ascolto sulla porta
3322
si usa:
rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/
Quando si trasferiscono grandi quantità di dati, si consiglia di eseguire il comando
rsync
all'interno di una sessione dello schermo o utilizzare l'opzione
-P
che dice a
rsync
di mostrare una barra di avanzamento durante il trasferimento e mantenere i file parzialmente trasferiti:
rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/
Conclusione
Ti abbiamo mostrato come usare
rsync
su SSH per copiare e sincronizzare file e directory.
Potresti anche voler leggere come escludere file o directory con
rsync
.
Sentiti libero di lasciare un commento in caso di domande.
terminale rsyncCome trasferire ps3 salvare i file dal tuo computer su ps3
Scopri come ottenere i file di salvataggio per i tuoi giochi PS3 dal Web e trasferirli su PS3.
Come trasferire file multimediali in modalità wireless tra ps vita e computer
Una semplice guida su come configurare e trasferire contenuti in modalità wireless tra una PS Vita e un computer.
Come escludere file e directory con rsync
Con Rsync è possibile eseguire il mirroring dei dati, creare backup incrementali e copiare file tra sistemi. Quando si copiano i dati, è possibile che si desideri escludere uno o più file o directory in base al nome o alla posizione. In questo tutorial, ti mostreremo come escludere file e directory con rsync.