GNU/Linux >> Tutoriels Linux >  >> Panels >> Webmin

Sauvegarde MySQL 1.1

Il s'agit d'une mise à jour du script de sauvegarde MySQL antérieur, avec cette version j'ai ajouté le code qui (en supposant que votre utilisateur de sauvegarde dispose de droits suffisants) permet au script d'obtenir une liste de toutes les bases de données sur le serveur, exclure les bases de données internes de MySQL et utilisez-la comme liste de bases de données à sauvegarder.

Il s'agit d'un script simple qui peut être utilisé pour effectuer des sauvegardes de vos bases de données MySQL, il peut être exécuté comme une tâche cron et génère suffisamment de journal pour vous permettre de suivre ce qui se passe.

Il y a quelques sections que vous devrez modifier et une étape supplémentaire qui utilise rsync pour envoyer les sauvegardes à un serveur distant dont vous pouvez ou non avoir besoin. Si vous l'exécutez sur un esclave de réplication MySQL (recommandé), décommentez les lignes d'arrêt/démarrage de l'esclave en place. Si vous l'exécutez sur un serveur maître ou unique, vous pouvez les ignorer.

#!/bin/bash

# Author: Grant MacDonald
# Purpose: MySQL backup script
# Version: 1.1
# Date: 12/08/2015

# Version History
# 1.1 Query the server for the list of databases
# 1.0 Initial version

# Options
# USEROPTIONS If you need to set a username / password do it here.
# BACKUPDIR Location to store backups
# DBLIST Space separated list of database names to backup
# DUMPOPTIONS Any options you wish mysqldump to use, or if you have to specify a host/socket, etc.
# BINDIR Path to mysql executables mysqladmin / mysqldump
# DATE Path to the date command (means you're not reliant on any PATH being set)
# GZIP Path to the gzip command

#It's good practise to create a user with backup rights to use.
#USEROPTIONS="-ubackup -pQwErTy123"
USEROPTIONS=""
BACKUPDIR=/backup
DUMPOPTIONS="--lock-all-tables"
BINDIR=/usr/bin
DATE=/bin/date
GZIP="/bin/gzip -f"

# You can explicity set the list of databases to backup
#DBLIST="your list of databases here"

# Or if your user has the correct rights you can query and get a list of all databases
DBLIST=$(mysql ${USEROPTIONS} -s -e 'SELECT SCHEMA_NAME  FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME NOT IN ("mysql", "information_schema"
, "performance_schema")')

## Script Logic Starts Here
echo $(${DATE}) MySQL Backup START

# Date to append to database names

# Uncomment the line below to use full dates
# Remember to make the day of week line a comment if you want to use the full dates.
#BACKUPDATE=$(${DATE} +%Y%m%d)

# The versions gives day of the week backups, eg mydatabase.Mon.sql, mydatabase.Tue.sql
#BACKUPDATE=$(${DATE} +%a)

# If you're running after midnight then you might want to use the previous day for the backup name.
# For example if you're running at 00:05 on Tuesday morning you might consider this to be "Monday nights" backup
BACKUPDATE=$(${DATE} -d yesterday +%a)

## Optional if you're a replication slave, remember to uncomment the START section too!
## Stop accepting replication while we backup
#echo $(${DATE}) Stop replication
#${BINDIR}/mysqladmin ${USEROPTIONS} stop-slave

# Iterate through the list of databases and take a dump
for DATABASE in ${DBLIST} ; do
  echo $(${DATE}) Dumping ${DATABASE} START
  ${BINDIR}/mysqldump ${USEROPTIONS} ${DUMPOPTIONS} ${DATABASE} > ${BACKUPDIR}/${DATABASE}_${BACKUPDATE}.sql
  echo $(${DATE}) Dumping ${DATABASE} FINISH
done

## Optional if you're a replication slave, remember to uncomment the STOP section too!
## Start accepting replication
#echo $(${DATE}) Start replication
#${BINDIR}/mysqladmin ${USEROPTIONS} start-slave

# Compress the backups
echo $(${DATE}) Compress Backup START
${GZIP} ${BACKUPDIR}/*_${BACKUPDATE}.sql
echo $(${DATE}) Compress Backup FINISH

## Optional rsync the files to the remote backup server
## Note:  This is sample code and not parameterised
#echo $(${DATE}) MYSQL RSYNC REMOTE_SERVER START
#${BINDIR}/rsync -avz --delete -e "ssh -i /root/.ssh/vps" ${BACKUPDIR}/* remote_server:/data/backup/
#echo $(${DATE}) MYSQL RSYNC REMOTE_SERVER FINISH

# Thank you and goodnight
echo $(${DATE}) MySQL Backup FINISH

# Elvis Has Left The Building

Webmin
  1. Optimiser la base de données MySQL

  2. Mettre à niveau Ubuntu 12.10 vers 13.04

  3. Fichiers de configuration de sauvegarde

  4. Système de sauvegarde Bacula

  5. Sauvegarde du système de fichiers

Serveur de base de données MySQL

Comment télécharger la sauvegarde de la base de données MySQL depuis cPanel ?

Comment sauvegarder la base de données MySQL à l'aide de cPanel ?

Sauvegarder (Exporter/Importer) votre base de données MySQL ?

Comment restaurer une base de données MySQL à partir d'une sauvegarde .SQL

Comment sauvegarder une base de données MySQL dans cPanel