Dernière mise à jour sur 6 sept. 2023, 13:18:29.
Catégorie:
Serveurs cloud
backup Cron Linux MariaDB MySQL
Votre serveur virtuel Kinamo (VPS) ou serveur cloud Kinamo vous permet d'installer vos propres scripts. Kinamo vous propose un script qui vous permet de sauvegarder le contenu de votre base de données MySQL ou MariaDB quotidiennement dans un dossier chronologique.
L'avantage du script présenté, c'est qu'il vous permet de créer une copie consistente de votre base de données MySQL / MariaDB à un certain point, et de la remettre en place rapidement.
Kinamo effectue des backups complets de votre serveur toutes les nuits, mais il est plus aisé de remettre à jour votre base de données comme décrit ci-dessous plutôt que de devoir faire appel au service Support de Kinamo pour un restore à partir de l'image de votre serveur.
Kinamo vous suggère de placer le script suivant dans le dossier /usr/sbin/local.
Pour rendre les choses faciles, nous avons appelé le script kinamo_mysqlbackup.sh.
#!/bin/bash # Configuration de base: datestamp e.g. YYYYMMDD DATE=$(date +"%Y%m%d") # Dossier où sauvegarder les backups (créez le d'abord!) BACKUP_DIR="/backup/mysql" # Identifiants MySQL MYSQL_USER="root" MYSQL_PASSWORD="YOURSECUREPASSWORD" # Commandes MySQL (aucune raison de modifier ceci) MYSQL=/usr/bin/mysql MYSQLDUMP=/usr/bin/mysqldump # Bases de données MySQL à ignorer SKIPDATABASES="Database|information_schema|performance_schema|mysql" # Nombre de jours à garder les dossiers (seront effacés après X jours) RETENTION=14 # ---- NE RIEN MODIFIER SOUS CETTE LIGNE ------------------------------------------ # # Create a new directory into backup directory location for this date mkdir -p $BACKUP_DIR/$DATE # Retrieve a list of all databases databases=`$MYSQL -u$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "($SKIPDATABASES)"` # Dumb the databases in seperate names and gzip the .sql file for db in $databases; do echo $db $MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --skip-lock-tables --events --databases $db | gzip > "$BACKUP_DIR/$DATE/$db.sql.gz" done # Remove files older than X days find $BACKUP_DIR/* -mtime +$RETENTION -delete
Copier et collez le contenu complet du script ci-dessus, et sauvegardez-le sous le nom kinamo_mysqlbackup.sh dans le dossier /usr/local/sbin/.
N'oubliez pas de paramétrer le script avec vos propres identifiants, et de créer le dossier de sauvegarde /backup/mysql.
Ajoutez les droits d'exécution au script avec la commande suivante:
chmod 755 kinamo_mysqlbackup.sh
Modifiez le crontab du serveur pour executer le script tous les jours à 1h:
vi /etc/crontab 0 1 * * * root /usr/local/sbin/kinamo_mysqlbackup.sh
Sauvegardez le fichier cron et redémarrer le service, ce qui se fait avec une des commandes suivantes selon votre distribution Linux:
service cron restart service crond restart
Le script assurera un backup quotidien de vos bases de données, que vous retrouverez sous /backup/mysql/YYYYMMDD/<dump de votre db>.
Vous n'avez pas obtenu de réponse à toutes vos questions?
Ne vous inquiétez pas, faites une demande d'assistance!