27Jun

Come escludere file da Rsync

Rsync è una delle utility più utili per un amministratore di server, ma sincronizza tutto per impostazione predefinita, il che può essere fastidioso se l'applicazione crea molti file temporanei. Ecco come escludere i file quando si utilizza rsync.

Esclusione da un elenco in un file

Questo è il metodo ideale per escludere file e cartelle, poiché è sempre possibile modificare l'elenco e modificare le cose se necessario. Ecco la sintassi:

rsync --exclude-from = /path/to/ file di esclusione /path/to/ source /path/to/ dest

La cosa complicata con rsync è che è necessario utilizzare un percorso relativo quando si tenta di escludere le cose, perché quando si tenta diabbinare le esclusioni non userà la prima parte del percorso per la partita. .. è strano.

Supponiamo, ad esempio, che tu stia cercando di eseguire il backup /data/web/ e inviarlo ad un altro server, quindi usi un comando come rsync -a utente /data/web/ @ server: /backups/data/web/ per farlo accadere. .. ma ti piacerebbe davvero saltare la sincronizzazione dell'/data/web/cache/cartella. Quando rsync va a controllare l'elenco di esclusione per ogni elemento che sincronizza, non controlla /data/web/cache/ poiché il comando rsync originale si basa sulla cartella /data/web/.Controllerà semplicemente "cache /" contro l'elenco. Quindi avrai bisogno di mettere "cache" nella lista, non il percorso completo. Esempio:

rsync -a --exclude-from = /data/ esclusioni /data/web/ /backups/

Ora per escludere /data/web/ cache e /data/web/ temp da rsync utilizzando questo comando, rimuoveremo la parte /data/web/ del percorso e il file di esclusioni /data/ conterrà semplicemente questo:

cache * temp *

Noterai che ho aggiunto * nel percorso, per assicurarmi che corrisponda a tutto ciò che inizia con "cache" all'inizio. Puoi utilizzare questo motivo a stella per motivi più utili se lo desideri, ad esempio vuoi escludere tutti i file. txt dalla sincronizzazione. Avviate il pattern con la stella per assicurarvi che corrisponda sempre e aggiungete:

*. txt

Ciò garantirebbe che quei tipi di file vengano saltati durante una sincronizzazione.È piuttosto semplice al di là di questo.

Escludendo un singolo oggetto

Questa tecnica è molto meno utile, ma è possibile utilizzarla al volo se necessario. Se stai configurando uno script per usare rsync, che di solito sei, dovresti prendere il minuto extra da escludere da un elenco di file per rendere più semplice la manutenzione futura. La sintassi è molto simile:

rsync --exclude = relativo /path/to/ exclusion / source / dest

Lo stesso percorso relativo dovrebbe essere applicato qui come sopra.