La façon la plus simple d'automatiser cette tâche serait de combiner MySQL Dumps et un cronjob. Vous pouvez trouver beaucoup d'informations sur ce sujet sur ce site et sur d'autres sites Internet, mais pour des raisons de finalisation:
Créez un fichier mysqldump.sh
Qui contiendra la commande de vidage mysql que nous planifierons dans un travail cron (remplacez l'utilisateur, le mot de passe et le chemin d'accès pour correspondre à votre environnement):
mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz
Modifier: si vous souhaitez que le script stocke la sauvegarde dans un emplacement distant, montez simplement le périphérique correspondant ou partagez et utilisez le chemin de montage dans le script.
Testez le script
Assurez-vous que le script dispose des autorisations d'exécution:
chmod +x /path/to/mysqldump.sh
Exécutez le script:
sh /path/to/mysqldump.sh
Et testez qu'il fonctionne correctement (le fichier de sauvegarde sera créé dans le dossier de sauvegarde spécifié).
Créer et planifier un nouveau travail cron
Dans une invite de commandes, tapez
sudo crontab -e
Et ajoutez la ligne suivante au bas du fichier:
30 23 * * * /path/to/mysqldump.sh
Cela exécutera le script tous les jours à 23h30.
Étendez ce script simple
Il y a littéralement beaucoup de choses que vous pouvez faire pour améliorer cette méthode de sauvegarde simple:
- Sauvegarde sur un autre système
- Surveiller l'espace disque
- Rapports par e-mail
- ...
Alors ne vous arrêtez pas ici et expérimentez! :-)
Utilisez des outils de sauvegarde ou des services de sauvegarde basés sur le cloud
Bien que la méthode ci-dessus soit l'une des plus faciles et puisse être étendue pour répondre à vos besoins spécifiques, il convient de mentionner qu'il existe d'autres alternatives:
- des outils de sauvegarde tels que AutoMySQLBackup, une application open source qui pourrait faciliter le processus de configuration de la notification par e-mail, la compression, le chiffrement, la rotation et le type (par exemple incrémentiel) de vos sauvegardes. Quant à Mai 2018, il est disponible pour Ubuntu Server via APT.
- des services de sauvegarde basés sur le cloud tels que BackupBird, myRepono, Bitcan, etc. qui peuvent être intéressants si vous gérez plusieurs serveurs de base de données et souhaitez gérer de manière centralisée toutes leurs sauvegardes.
Veuillez garder à l'esprit que je ne suis en aucun cas lié aux solutions et services mentionnés ci-dessus et que je ne les répertorie qu'à titre de référence, alors utilisez-les à vos propres risques.
Liens / références utiles:
Cron -> https://en.wikipedia.org/wiki/Cron
Déchargement MySQL -> https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
date +%F
- qui choisira automatiquement une combinaison année + mois + date adaptée aux paramètres régionaux de l'utilisateur (par exemple, j'obtiendraiYYYY-MM-DD
).sudo crontab -e
et n'oubliez pas de rendre le script exécutable:chmod +x /path/to/mysqldump.sh