Come usare 'rsync' per copiare cartelle e file in Linux

Cosa sapere

  • Copia in base al tipo di file: rsync /home/jon/Desktop/data/*.jpg /home/jon/Desktop/backupdata/
  • Copia in base alla dimensione del file: rsync --max-size=2k /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/
  • Copia intere cartelle: rsync --recursive /home/jon/Desktop/data /home/jon/Desktop/data2

Questo articolo spiega come usare il rsync programma di trasferimento file per Linux copiare directory e file e persino escludere file in modo sistematico. In quanto tale, esegue il backup dei file destinati all'archiviazione evitando tutto il resto.

Sintassi dei comandi

Usando il rsync comando correttamente richiede di seguire il corretto sintassi:

rsync [OPZIONE]... [SRC]... [DEST]
rsync [OPZIONE]... [SRC]... [USER@]HOST: DEST
rsync [OPZIONE]... [SRC]... [USER@]HOST:: DEST
rsync [OPZIONE]... [SRC]... rsync://[USER@]HOST[:PORT]/DEST
rsync [OPZIONE]... [USER@]HOST: SRC [DEST]
rsync [OPZIONE]... [UTENTE@]HOST:: SRC [DEST]
rsync [OPZIONE]... rsync://[UTENTE@]HOST[:PORTA]/SRC [DEST]

Alcuni switch di opzione comunemente usati includono:

  • -v, --verboso: Aumenta la verbosità (fornisce maggiori dettagli su cosa sta facendo il comando).
    • --info=BANDIERE: Fornisce messaggi informativi dettagliati.
    • --debug=BANDIERE: fornisce messaggi di debug dettagliati.
    • --msgs2stderr: Gestione speciale dell'output per il debug.
  • -Q, --calmatevi: sopprime i messaggi non di errore.
    • --no-motd: Sopprime il messaggio del giorno in modalità demone.
  • -C, --checksum: Salta i file in base a checksum, non mod-time e dimensioni.
  •  -R, --ricorsivo: Sfoglia le sottodirectory per file aggiuntivi.
  • -B, --backup: Effettua backup.
    • --backup-dir=DIR: Effettua backup in una gerarchia di directory corrispondente.
    • --suffisso=SUFFISSO: aggiunge il testo del suffisso alla fine dei file di backup.
  • -D, --dirs: Trasferisci solo le directory senza navigare al loro interno.

Esempi di comandi

Utilizzo rsync con alcune di queste opzioni per mettere a punto la tua strategia di backup.

Copia selettiva in base al tipo di file

rsync /home/jon/Desktop/data/*.jpg /home/jon/Desktop/backupdata/

In questo esempio, tutti i JPG file da /data/ copia nella cartella /backupdata/ cartella sull'utente Jon's Desktop cartella.

Copia di file in base alle dimensioni

rsync --max-size=2k /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/

Questo rsync l'esempio è un po' più complicato poiché è impostato su non copiare i file se sono più grandi di 2.048 KB. Copia solo i file più piccoli della dimensione specificata.

Utilizzo k, m, o G per indicare kilobyte, megabyte e gigabyte nel moltiplicatore 1.024, oppure kb, mb, o gb per utilizzare 1.000.

rsync --min-size=30mb /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/

Lo stesso si può fare per --dimensione minima, pure. In questo esempio, rsync copia solo i file di 30 MB o più grandi.

rsync --min-size=30mb --progress /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/

Utilizzare il --progresso opzione per vedere il processo funzionare fino al 100%, utile quando si copiano file molto grandi.

Copia intere cartelle

rsync --recursive /home/jon/Desktop/data /home/jon/Desktop/data2

Il --ricorsivo L'opzione fornisce un modo semplice per copiare un'intera cartella in una posizione diversa, come nel /data2/ cartella nell'esempio sopra.

Questo comando copia l'intera cartella e tutto il suo contenuto nella nuova posizione.

Escludi alcuni file

rsync -r --exclude="*.deb" /home/jon/Desktop/data /home/jon/Desktop/backupdata

Copia un'intera cartella ma escludi i file di un certo estensione del file, come DEB file, in questo esempio sopra. Il tutto /data/ la cartella viene copiata in /backupdata/ come nell'esempio precedente, ma tutti i file DEB sono esclusi dalla copia.