Il modo più semplice per automatizzare questa attività sarebbe la combinazione di MySQL Dumps e un cronjob. Puoi trovare molte informazioni su questo argomento su questo e altri siti Internet, ma per motivi di completamento:
Crea un file mysqldump.sh
Che conterrà il comando mysql dump che programmeremo in un processo cron (sostituisci utente, password e percorso in base al tuo ambiente):
mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz
Modifica: se si desidera che lo script memorizzi il backup in una posizione remota, montare semplicemente il dispositivo corrispondente o condividere e utilizzare il percorso di montaggio nello script.
Prova lo script
Assicurarsi che lo script disponga delle autorizzazioni di esecuzione:
chmod +x /path/to/mysqldump.sh
Esegui lo script:
sh /path/to/mysqldump.sh
E test funziona correttamente (il file di backup verrà creato nella cartella di backup specificata).
Crea e pianifica un nuovo lavoro cron
In un prompt dei comandi digitare
sudo crontab -e
E aggiungi la seguente riga nella parte inferiore del file:
30 23 * * * /path/to/mysqldump.sh
Questo eseguirà lo script ogni giorno alle 23:30.
Estendi questo semplice script
Ci sono letteralmente un sacco di cose che puoi fare per migliorare questo semplice metodo di backup:
- Backup su un altro sistema
- Monitorare lo spazio su disco
- Segnalazione tramite email
- ...
Quindi non finire qui e sperimentare! :-)
Utilizzare strumenti di backup o servizi di backup basati su cloud
Sebbene il metodo sopra descritto sia uno dei più semplici e possa essere esteso per soddisfare le tue esigenze specifiche, vale la pena ricordare che ci sono altre alternative:
- strumenti di backup come AutoMySQLBackup, un'applicazione open source che potrebbe facilitare il processo di configurazione di notifica e-mail, compressione, crittografia, rotazione e tipo (ad es. incrementale) dei backup. Per quanto riguarda Mai 2018, è disponibile per Ubuntu Server tramite APT.
- servizi di backup basati su cloud come BackupBird, myRepono, Bitcan, ecc. che potrebbero essere interessanti se si gestiscono diversi server di database e si desidera gestire centralmente tutti i loro backup.
Tieni presente che non sono in alcun modo correlato a nessuna delle soluzioni e dei servizi sopra menzionati e li sto elencando solo come riferimento, quindi utilizzali a tuo rischio.
Link / Riferimenti utili:
Cron -> https://en.wikipedia.org/wiki/Cron
MySQL Dump -> https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
date +%F
- che sceglierà automaticamente una combinazione di anno + mese + data adatta alle impostazioni locali dell'utente (ad esempio, avròYYYY-MM-DD
).