Come escludere la directory rsync?

Come escludere la directory rsync?
RSYNC (sta per la sincronizzazione remota) è un'utilità di riga di comando molto potente per la sincronizzazione di file e directory locali e remoti. Viene preinstallato sulla maggior parte delle distribuzioni Linux. È una delle migliori utilità per il backup e il mantenimento di file e directory in più posizioni in sincronizzazione. La parte migliore di rsync è che minimizza la quantità di dati copiati nella posizione remota copiando solo i dati che sono stati modificati. C'è un'altra grande caratteristica di rsync di cui discuteremo oggi; sta escludendo i file o le directory dalla sincronizzazione. Questo è estremamente utile durante i backup quando non si desidera copiare uno o più file o directory.

Ti mostreremo come puoi escludere un file o una directory in RSYNC usando diversi esempi. Gli esempi presentati qui sono stati testati su Ubuntu 20.04 LTS, tuttavia, questi sono validi anche per altre distribuzioni Linux con rsync installata.

Escludere un file specifico

Durante la sincronizzazione di una directory, potresti voler escludere un file specifico situato al suo interno. È possibile farlo usando l'opzione -exclude seguita dal nome file racchiuso nelle virgole.

La sintassi del comando sarà:

$ rsync -a --exclude 'file_name' source_directory/ destinazione_directory/

Qui, UN l'opzione viene utilizzata per la sincronizzazione ricorsiva.

Ad esempio, per escludere un file denominato campione.TXT Dalla sorgente durante la sincronizzazione src_dir E dest_dir, Il comando sarebbe:

$ rsync -a --exclude 'campione.txt 'src_dir/ dest_dir/

Escludere una directory specifica

Per escludere una directory specifica (comprese le sue sottodirectory) dall'origine durante la sincronizzazione delle directory di origine e di destinazione, utilizzare la seguente sintassi:

$ rsync -a --exclude 'directory_name' src_dir/ dest_dir/

Ad esempio, per escludere una directory denominata Sampledir Quando si sincronizza il src_dir E dest_dir, Il comando sarebbe:

$ rsync -a --exclude 'sampledir' src_dir/ dest_dir/

Se si desidera escludere il contenuto della directory ma non la directory stessa, usa il nome della directory seguito da /*:

$ rsync -a --exclude 'sampledir/* src_dir/ dest_dir/

Il comando sopra copia solo la directory sulla destinazione ma non il suo contenuto.

Escludi più file o directory

Per escludere più file o directory durante il processo di sincronizzazione, specificare ciascuno di essi come segue:

$ rsync -a --exclude 'file_name' --exclude 'directory1 --exclude' directory2 'src_dir/ dest_dir/

Invece di specificare -escludere Opzione separatamente per ogni file o directory, è possibile utilizzare un singolo -escludere Opzione specificando tutti i file o le directory tra parentesi ricci.

$ rsync -a --exclude = 'file_name', 'directory1', 'directory2' src_dir/ dest_dir/

Un'altra opzione per escludere più file o directory è elencarli in un file e quindi passare il nome file al -Escludi-From opzione:

$ rsync -a --exclude -from 'list' src_dir/ dest_dir/

Qui, l '"elenco" contiene il nome di file e directory che vogliamo escludere. Questo comando si sincronizza SRC_DIR al DEST_DIR mentre esclude i file e le directory menzionate nel file "elenco".

Escludere file o directory che corrispondono a uno schema

Con rsync, puoi anche escludere file o directory che corrispondono a uno schema specifico. Ad esempio, durante la sincronizzazione di una directory, potresti voler escludere tutti i file che terminano con un .TXT estensione. Il comando, in questo caso, sarebbe:

$ rsync -a --exclude '*.txt 'src_dir/ dest_dir/

Escludere un file per dimensione

Con RSYNC, è possibile escludere i file in base alla loro dimensione minima o massima. Qui non useremo l'opzione -esclude, ma le opzioni -max -size = o -min -size == in base alla dimensione massima e minima, rispettivamente.

Ecco l'elenco del nostro src_dir che mostra nomi di file insieme alle loro dimensioni in MB.

Supponiamo che vogliamo sincronizzare tutti i file al Dest_dir tranne quelli con una dimensione maggiore di 100 MB. In questo caso, il comando sarebbe:

$ rsync -av -max -size = 100m src_dir/ dest_dir/

Allo stesso modo, per escludere file più piccoli di una dimensione specifica, diciamo 50 MB, il comando sarebbe:

$ rsync -av --min -size = 50m src_dir/ dest_dir/

Conclusione

Questo è tutto ciò che c'è! In questo post, abbiamo discusso di diversi esempi per escludere un file o una directory in RSYNC. Abbiamo mostrato come escludere un singolo file o directory, più file e directory, file che corrispondono a uno schema specifico e i file in base alle loro dimensioni minime/massime.