Prova cron
. È uno strumento che esegue i comandi in un determinato momento o intervallo. Potrebbe non essere esattamente quello che stai cercando (clone su build) ma funziona abbastanza bene.
Per impostare cron: da Terminale, digitare crontab -e
.
Questo dovrebbe far apparire un editor di testo (in base all'editor di testo impostato come predefinito) e una bella intestazione che spiega cosa fa ogni campo.
minute, hour: does as it says
dom: day of month
mon: month
dow: day of week
Ora daremo un'occhiata al tuo comando per eseguire backup regolari. Un ottimo strumento per i backup è rsync. Dovrai impostare le chiavi SSH affinché funzioni senza una richiesta di password.
Ecco il comando che uso:
rsync -vzhaPE --delete-after /path/to/local/file ip.address.of.server:/path/to/backup/location
Opzioni utilizzate: -vzhaPE
v: verbose
z: compress (good for slow connections. Adjust compression level with --compress-level=<1-9>)
h: human readable numbers
a: archive mode. This preserves timestamps and practically clones everything over as it were.
P: progress bar.
E: keep partial files. This means that if the connection was interrupted, rsync will pick up on the partial files and continue where it left off. Good for copying multiple large files over a slow network.
delete-after: deletes files from the server that have been deleting from the sending side
Le opzioni v, h e P sono più utili per il debug umano, quindi non le introdurremo nel nostro cron job.
Quindi, per metterlo insieme in cron: (esegui ogni dieci minuti, per esempio)
*/10 * * * * rsync -zaE --delete-after /path/to/local/file ip.address.of.server:/path/to/backup/location
Questo comando eseguirà il backup di qualsiasi file nella directory specificata nella directory specificata del server ogni dieci minuti . Non verranno effettuati duplicati poiché rsync eliminerà i file su cui copia.
Inoltre, se lo desideri, puoi anche eseguire uno script che sposta il backup copiato in un'altra cartella se sei interessato a una funzionalità di controllo delle versioni simile a Time Machine. Tuttavia, avrai bisogno di spazio sufficiente e alcune piccole modifiche al comando di backup (rsync push per rsync pull). Se questo è quello che stai cercando, fammi sapere e mi espanderò su di esso.