Maison  >  Article  >  Opération et maintenance  >  Introduction à un simple script bash pour la sauvegarde de la base de données MySQL

Introduction à un simple script bash pour la sauvegarde de la base de données MySQL

不言
不言original
2019-03-23 13:35:083415parcourir

Comment implémenter la sauvegarde de la base de données MySQL ? Il est possible d'utiliser un script bash pour la sauvegarde de la base de données MySQL. Dans cet article, nous présenterons un simple script bash pour sauvegarder une base de données MySQL, archiver et stocker la sauvegarde sur le système local. Ce script bash supprimera également les anciennes sauvegardes du disque pour libérer de l'espace. Vous pouvez également spécifier le nombre de jours pendant lesquels conserver les sauvegardes sur le disque local.

Introduction à un simple script bash pour la sauvegarde de la base de données MySQL

Créer un script de sauvegarde MySQL

Maintenant, copiez le contenu suivant dans le fichier de script (tel que /backup/mysql backup. sh ) et enregistré sur le système Linux. Après cela, modifiez certaines valeurs de configuration dans la section "Mettre à jour les valeurs inférieures" du script en fonction de votre environnement

#!/bin/bash
 
################################################################
##
##   MySQL Database Backup Script 
##   Written By: Rahul Kumar
##   URL: https://tecadmin.net/bash-script-mysql-database-backup/
##   Last Update: Jan 05, 2019
##
################################################################
 
export PATH=/bin:/usr/bin:/usr/local/bin
TODAY=`date +"%d%b%Y"`
 
################################################################
################## Update below values  ########################
 
DB_BACKUP_PATH='/backup/dbbackup'
MYSQL_HOST='localhost'
MYSQL_PORT='3306'
MYSQL_USER='root'
MYSQL_PASSWORD='mysecret'
DATABASE_NAME='mydb'
BACKUP_RETAIN_DAYS=30   ## Number of days to keep local backup copy
 
#################################################################
 
mkdir -p ${DB_BACKUP_PATH}/${TODAY}
echo "Backup started for database - ${DATABASE_NAME}"
 
 
mysqldump -h ${MYSQL_HOST} \
   -P ${MYSQL_PORT} \
   -u ${MYSQL_USER} \
   -p${MYSQL_PASSWORD} \
   ${DATABASE_NAME} | gzip > ${DB_BACKUP_PATH}/${TODAY}/${DATABASE_NAME}-${TODAY}.sql.gz
 
if [ $? -eq 0 ]; then
  echo "Database backup successfully completed"
else
  echo "Error found during backup"
fi
 
 
##### Remove backups older than {BACKUP_RETAIN_DAYS} days  #####
 
DBDELDATE=`date +"%d%b%Y" --date="${BACKUP_RETAIN_DAYS} days ago"`
 
if [ ! -z ${DB_BACKUP_PATH} ]; then
      cd ${DB_BACKUP_PATH}
      if [ ! -z ${DBDELDATE} ] && [ -d ${DBDELDATE} ]; then
            rm -rf ${DBDELDATE}
      fi
fi
 
### End of script ####

Après avoir créé ou téléchargé le script, assurez-vous de définir les autorisations d'exécution pour qu'il s'exécute correctement.

$ chmod + x /backup/mysql-backup.sh

Planifiez le script dans Crontab

Maintenant, planifiez le script dans crontab pour qu'il s'exécute tous les jours et effectuez la sauvegarde régulièrement. Utilisez la commande crontab -e pour modifier crontab sur votre système. Ajoutez le paramètre suivant pour activer la sauvegarde à 2 heures du matin.

Planification du script dans crontab

Planifiez maintenant le script dans crontab pour qu'il s'exécute tous les jours et termine la sauvegarde régulièrement. Utilisez la commande crontab -e pour modifier crontab sur votre système. Ajoutez le paramètre suivant pour activer la sauvegarde à 2 heures du matin.

0 2 * * * root /backup/mysql-backup.sh

Enregistrez votre fichier crontab. Lorsque cron est activé, le script effectuera automatiquement des sauvegardes, mais veuillez vérifier chaque semaine ou chaque mois pour vous assurer qu'il a été sauvegardé.

Cet article est terminé ici. Pour un contenu plus passionnant, vous pouvez prêter attention à la colonne Tutoriel vidéo Linux du site Web PHP chinois !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn