Monitorare i cambiamenti nei file con rsync in un cronjob

Utilizzare rsync all'interno di un cronjob per eseguire backup o sincronizzazioni automatiche è una pratica comune. Tuttavia, per verificare quali file vengono effettivamente modificati durante l'esecuzione del comando, è necessario un metodo per registrare e monitorare i cambiamenti. Questo articolo illustra come ottenere un report dettagliato delle modifiche rilevate da rsync e come configurare un cronjob per automatizzare il processo.

Utilizzare Rsync con Log dei Cambiamenti

Il comando rsync offre l'opzione --itemize-changes, che consente di ottenere un output dettagliato su quali file sono stati aggiunti, modificati o eliminati.

rsync -az --itemize-changes /source/dir/ /destination/dir/ | tee /var/log/rsync_changes.log

In questo modo, il log /var/log/rsync_changes.log conterrà l'elenco delle modifiche effettuate.

Automatizzare Rsync con un Cronjob

Per eseguire automaticamente rsync a intervalli regolari e registrare i cambiamenti, è possibile configurare un cronjob. Ad esempio, per eseguire il backup ogni giorno alle 2:00 AM:

0 2 * * * rsync -az --itemize-changes /source/dir/ /destination/dir/ | tee -a /var/log/rsync_changes.log

Il flag -a in tee assicura che il log venga aggiornato senza sovrascrivere i dati precedenti.

Inviare Notifiche via Email

Se si desidera ricevere un report via email ogni volta che il cronjob viene eseguito, è possibile modificare il cronjob in questo modo:

0 2 * * * rsync -az --itemize-changes /source/dir/ /destination/dir/ | tee -a /var/log/rsync_changes.log | mail -s "Rsync Report" user@example.com

Assicurarsi che il server sia configurato correttamente per l'invio di email con mail.

Analizzare i Cambiamenti nei Log

Per visualizzare rapidamente i file modificati negli ultimi giorni, è possibile usare:

grep "^>f" /var/log/rsync_changes.log | tail -n 20

Il prefisso >f indica che il file è stato aggiornato.

Conclusione

Monitorare le modifiche nei file sincronizzati con rsync in un cronjob è essenziale per tenere traccia delle variazioni e rispondere prontamente a eventuali problemi. L'uso di --itemize-changes, la registrazione nei log e l'invio di notifiche via email garantiscono una gestione efficace e trasparente dei backup automatici.

Torna su