Prova cron
. È uno strumento che esegue i comandi in un momento o intervallo specifico. Potrebbe non essere esattamente quello che stai cercando (clone su build) ma funziona piuttosto bene.
Per configurare cron: da Terminale, digita crontab -e
.
Questo dovrebbe far apparire un editor di testo (a seconda di quale editor di testo hai 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 comando per eseguire backup regolari. Un ottimo strumento per i backup è rsync. Avrai bisogno di impostare 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ù per il debug umano, quindi non le introdurremo nel nostro lavoro cron.
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 restituirà qualsiasi file contenuto nella directory specificata nella directory specificata del server ogni dieci minuti . Non verranno fatti duplicati poiché rsync cancellerà i file su cui copia.
Inoltre, se lo desideri, puoi anche eseguire uno script che sposta il backup copiato su un'altra cartella se sei interessato a una funzionalità di controllo delle versioni di Time Machine. Tuttavia, avrai bisogno di abbastanza spazio di archiviazione e alcune piccole modifiche al comando di backup (rsync push a rsync pull). Se questo è ciò che stai cercando, fammelo sapere e io lo approfondirò.