Creare uno script Rsync per automatizzare il backup è un processo relativamente semplice ed estremamente utile. Rsync è un’applicazione di sincronizzazione di file open source disponibile su molti sistemi operativi Unix-like, tra cui Linux e MacOS, che può eseguire copie di backup sia localmente che da un sistema all’altro.
Per iniziare, avrai bisogno di accedere alla shell del tuo computer o server tramite un terminale. Una volta fatto, apri il tuo editor di testo preferito per iniziare a scrivere lo script. Ad esempio:
```
nano backup.sh
```
Ti troverai ora di fronte a un file di testo vuoto. Al suo interno, scrivi il seguente script di base:
```
#!/bin/bash
rsync -avz /sorgente/ /destinazione/
```
In questo script, “/sorgente/” è il percorso del file o della directory che desideri eseguire il backup, e “/destinazione/” è il percorso in cui desideri che venga copiato il backup. L’opzione `-avz` dice a rsync di mantenere le autorizzazioni dei file (`a`), di essere verboso (`v`), e di comprimere i dati durante il trasferimento (`z`).
Salva il file e chiudi l’editor di testo. Ora, devi rendere lo script eseguibile. Puoi farlo con il seguente comando:
```
chmod +x backup.sh
```
Hai ora uno script rsync che può essere eseguito manualmente ogni volta che desideri fare un backup. Tuttavia, siccome l’obiettivo è l’automazione, potrai voler configurare un cron job per eseguire lo script su base regolare. Per farlo, apri il cron file scrivendo:
```
crontab -e
```
E aggiungi una linea simile a questa:
```
0 2 * * * /percorso/backup.sh >> /percorso/backup.log
```
Questo cron job eseguirà il tuo script di backup ogni giorno alle 2 del mattino, e i log dell’operazione saranno scritti in `backup.log`.
Lo script sopra è un esempio molto semplice. Rsync ha molte altre opzioni che potresti voler esplorare a seconda delle tue esigenze specifiche. Puoi consultare la pagina manuale di rsync per altre opzioni e informazioni (`man rsync` in un terminale). Puoi trovare maggiori informazioni su cron e come configurare i cron job sulla pagina manuale di cron (`man 5 crontab`).
Fonti:
1. [Rsync (Remote Sync): 10 Practical Examples of Rsync Command in Linux](https://www.tecmint.com/rsync-local-remote-file-synchronization-commands/)
2. [CronJob Scheduling in Linux](https://www.geeksforgeeks.org/cron-job-scheduling-in-linux/)
3. [How To Write a Simple Shell Script on a Linux System (Digital Ocean)](https://www.digitalocean.com/community/tutorials/how-to-write-a-simple-shell-script-on-a-linux-system)
4. [Beginner’s Guide To Setting Up SSH On Linux And Testing Your Setup](https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04)