Rsync sta per "sincronizzazione remota". Rsync è lo strumento più robusto, versatile e flessibile per trasferire file rispetto ad altre alternative come SCP. È un ottimo strumento per le operazioni quotidiane del server come il backup e il ripristino e le operazioni generali sui file tra due o più macchine locali e remote. In questo articolo, ti mostreremo come inviare e scaricare file utilizzando rsync.
1. Sintassi di Rsync
La seguente sintassi è molto probabilmente la forma più comune di comando rsync che vedrai.
# rsync [options] /source /destination
Queste sono le opzioni comunemente usate
-v, --verbose increase verbosity, provide more information about what the command is doing
-q, --quiet suppress non-error messages
-c, --checksum skip based on checksum, not mod-time and size
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-r, --recursive recurse into directories
-u, --update skip files that are newer on the receiver
-d, --dirs transfer directories without recursing
-p, --perms preserve permissions
-E, --executability preserve executability
-A, --acls preserve ACLs (implies -p)
-X, --xattrs preserve extended attributes
-o, --owner preserve owner (super-user only)
-g, --group preserve group
-D same as --devices --specials
-t, --times preserve modification times
-S, --sparse handle sparse files efficiently
-n, --dry-run perform a trial run with no changes made
-W, --whole-file copy files whole (w/o delta-xfer algorithm)
-x, --one-file-system don't cross filesystem boundaries
-B, --block-size=SIZE force a fixed checksum block-size
-e, --rsh=COMMAND specify the remote shell to use
-P same as --partial --progress
Ad esempio, sincronizzeremo i file da /var/www/html/
a /opt/backup/
. Per completare ciò, possiamo eseguire questo comando:
# rsync -Wav /var/www/html/ /opt/backup/
Analizziamo il comando sopra in basso. Le opzioni sono archivio (-a)
, che indica a rsync di copiare i file in modo ricorsivo e di preservare la proprietà del gruppo e dell'utente quando copia i file. Questa opzione è in realtà una combinazione di option (-rlptgoD)
che include il trasferimento ricorsivo, il trasferimento dei tempi di modifica dei file, i permessi dei file, i collegamenti simbolici, ecc.
Con questo (-W)
opzione, l'algoritmo di trasferimento delta non viene utilizzato e l'intero file viene inviato così com'è. Questa è l'impostazione predefinita quando sia l'origine che la destinazione sono specificate come percorsi locali, ma solo se non è attiva alcuna opzione di scrittura in batch.
L'opzione dettagliata (-v)
dice a rsync di stampare più informazioni su ciò che sta facendo sul terminale.
2. Come scaricare file utilizzando Rsync
Nel passaggio precedente, abbiamo imparato come copiare file da una posizione all'altra usando rsync. Ora scaricheremo i file da un server remoto usando rsync. Fondamentalmente, il comando è lo stesso, dobbiamo solo sostituire il sorgente con un nome utente SSH del server remoto perché il trasferimento utilizzerà una connessione SSH.
# rsync [-options] user@SOURCE_IP_ADDRESS:/SOURCE /DESTINATION
Ad esempio, vogliamo scaricare o copiare una directory dal nostro server all'indirizzo IP 1.2.3.4
a un altro server in 5.6.7.8
. Diciamo che stiamo per scaricare o copiare /var/www/html/
a /home/master/
Dobbiamo accedere al nostro server in 5.6.7.8 ed eseguire questo comando.
# rsync -Wav -e 'ssh -p 7022' [email protected]:/var/www/html/ /home/master/
Come puoi vedere, abbiamo aggiunto un'opzione (-e). Questa opzione viene utilizzata per specificare la shell remota da utilizzare e a quale porta ci collegheremo. Poiché l'SSH sul server remoto è in ascolto sulla porta 7022, possiamo aggiungerlo come "ssh -p 7022". Se la porta SSH del server remoto è la porta predefinita 22, puoi semplicemente usare "-e ssh" come opzione nella sintassi del comando rsync.
L'ultimo, presta attenzione alla barra finale nel sorgente (/var/www/html/
). Se vuoi scaricare o copiare SOLO il contenuto della directory html senza la directory html stessa, non dimenticare di aggiungere una barra finale. Se non aggiungi una barra finale, il comando copierà la directory html e il suo contenuto.
3. Come inviare file utilizzando Rsync
Questa volta, la destinazione sarà un sistema remoto mentre l'origine è locale, quindi viene considerato come un invio di file. Puoi specificare un account utente remoto se è diverso da quello che usi per inviare i file usando rsync. Quindi il suddetto account utente dovrebbe avere l'autorizzazione scritta nel server remoto.
Il comando sarà simile a questo
# rsync [-options] /SOURCE user@DESTINATION_IP_ADDRESS:/DESTINATION
# rsync -Wav -e 'ssh -p 7022' /home/master/ [email protected]:/var/www/html/
Ovviamente, l'account utente a cui fai riferimento sul server remoto dovrà disporre delle autorizzazioni corrette per scrivere nella directory di destinazione.
Questo è tutto. Hai imparato come inviare e scaricare file usando rsync. Per saperne di più sulle opzioni disponibili, puoi eseguire man rsync mentre sei nel tuo terminale. Il comando ti mostrerà il manuale di rsync.
Ovviamente, non devi inviare e scaricare file utilizzando rsync se utilizzi uno dei nostri servizi di hosting VPS Linux, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di inviare e scaricare file utilizzando rsync per te. Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta.
PS. Se ti è piaciuto questo post su come inviare e scaricare file utilizzando rsync, condividilo con i tuoi amici sui social network utilizzando i pulsanti qui sotto o lascia semplicemente una risposta nelle sezioni commenti. Grazie.