devdev / in the loop

rsync: come escludere file e cartelle

Rsync (Remote sync) è uno strumento molto potente per poter sincronizzare due cartelle, e per poter effettuare backup incrementali. In questo articolo vedremo, nello specifico, come escludere file o cartelle dalla sincronizzazione, con alcuni esempi pratici. Questo significa che dovrete avere un minimo di dimestichezza con questo comando. Se siete alle prime armi vi consiglio di leggere prima l’articolo sugli esempi pratici rsync.

In una situazione di backup tipica, potremmo voler escludere dei file “precisi”, dei tipi di file oppure intere directory. Vediamo come farlo attraverso vari esempi:

Escludere una directory specifica

Se volessimo ignorare una specifica directory presente sulla sorgente (e tutte le sue sottodirectory), dobbiamo usare il flag --exclude:

rsync -rf --exclude "video" ~/Desktop/devdev /Volumes/DiscoEsterno/Backup

Trasferiamo tutti i file e le cartelle contenuti nella directory sorgente ~/Desktop/devdev alla directory di destinazione /Volumes/DiscoEsterno/Backup escludendo però la cartella “video”.

Escludere le directory secondo un pattern specifico

Se volessimo escludere dalla copia dei file delle cartelle (e sottocartelle) che contengono nel loro nome un testo, come ad esempio il nome “prova”, possiamo farlo semplicemente utilizzando delle wildcard come carattere jolly:

rsync -rf --exclude "temp_*" ~/Desktop/devdev /Volumes/DiscoEsterno/Backup

In questo esempio escluderemo tutti i file e le cartelle che iniziano con “temp_”, come ad esempio la cartella temp_dir e il file temp_index.txt.

Escludere un file specifico

Per escludere un file specifico, possiamo indicarlo indicarlo direttamente:

rsync -rf --exclude "Thumbs.db" ~/Desktop/devdev /Volumes/DiscoEsterno/Backup

Ci sarà molto utile ad esempio per NON effettuare il backup di file “inutili” e ricostruibili come Thumbs.db su windows o .DS_Store su mac.

Escludere un tipo di file

Ci capiterà di non voler sincronizzare uno specifico tipo di file, ad esempio tutte le immagini .jpg o tutti i log di un sistema. Per escludere questo tipo di file dalla sincronizzazione, dovremo indicare l’estensione in questo modo:

rsync -rf --exclude "*.jpg" ~/Desktop/devdev /Volumes/DiscoEsterno/Backup

Nessun file .jpg verrà sincronizzato con questo comando.

Questo articolo ti è stato utile?
Server – LETTURA 7 MINUTI Il comando du, esempi e flag
Il comando du è uno standard Linux/Unix (e Mac) che ci permette di ottenere informazioni su file e cartelle in…
Server – LETTURA 4 MINUTI Come bloccare un IP con .htaccess
Bloccare l’accesso ad un sito può essere utile per vari motivi: bloccare script malevoli, proteggersi dagli stalker o da quegli…
Server – LETTURA 12 MINUTI Che cos’è la High Availability
In questi anni stiamo vedendo un incremento verticale delle strutture ad alta efficacia, sia in termini di performance che di…
Server – LETTURA 5 MINUTI WordPress: PHP 7.2 vs PHP 7.3 (performance e benchmark)
PHP 7.3 è stato rilasciato alla fine del 2018, quindi comincia ad essere maggiormente diffuso sui sistemi in produzione. Oggi…
Roba figa da
if (weekend) {
    relax();
}
la nostra newsletter, ogni tanto.