Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Einführung in ein einfaches Bash-Skript für die MySQL-Datenbanksicherung

Einführung in ein einfaches Bash-Skript für die MySQL-Datenbanksicherung

不言
不言Original
2019-03-23 13:35:083433Durchsuche

Wie implementiert man eine MySQL-Datenbanksicherung? Es ist möglich, ein Bash-Skript für die Sicherung der MySQL-Datenbank zu verwenden. In diesem Artikel stellen wir ein einfaches Bash-Skript zum Sichern einer MySQL-Datenbank sowie zum Archivieren und Speichern des Backups auf dem lokalen System vor. Dieses Bash-Skript löscht auch alte Backups von der Festplatte, um Speicherplatz freizugeben. Sie können auch die Anzahl der Tage angeben, die Backups auf der lokalen Festplatte aufbewahrt werden sollen.

Einführung in ein einfaches Bash-Skript für die MySQL-Datenbanksicherung

MySQL-Sicherungsskript erstellen

Kopieren Sie nun den folgenden Inhalt in die Skriptdatei (z. B. /backup/mysql backup. sh ) und auf dem Linux-System gespeichert. Ändern Sie anschließend einige Konfigurationswerte im Abschnitt „Unterhalb der Werte aktualisieren“ des Skripts entsprechend Ihrer Umgebung

#!/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 ####

Stellen Sie nach dem Erstellen oder Herunterladen des Skripts sicher, dass Sie die Ausführungsberechtigungen festlegen, damit es ordnungsgemäß ausgeführt wird.

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

Planen Sie das Skript in Crontab

Planen Sie nun das Skript in Crontab so, dass es jeden Tag ausgeführt wird und die Sicherung regelmäßig durchführt. Verwenden Sie den Befehl crontab -e, um crontab auf Ihrem System zu bearbeiten. Fügen Sie die folgende Einstellung hinzu, um die Sicherung um 2 Uhr morgens zu aktivieren.

Planen des Skripts in Crontab

Planen Sie nun das Skript in Crontab so, dass es jeden Tag ausgeführt wird und die Sicherung regelmäßig durchführt. Verwenden Sie den Befehl crontab -e, um crontab auf Ihrem System zu bearbeiten. Fügen Sie die folgende Einstellung hinzu, um die Sicherung um 2 Uhr morgens zu aktivieren.

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

Speichern Sie Ihre Crontab-Datei. Wenn Cron aktiviert ist, führt das Skript automatisch Backups durch. Überprüfen Sie jedoch wöchentlich oder monatlich, ob ein Backup erstellt wurde.

Dieser Artikel ist hier zu Ende. Weitere spannende Inhalte finden Sie in der Spalte Linux-Video-Tutorial auf der chinesischen PHP-Website!

Das obige ist der detaillierte Inhalt vonEinführung in ein einfaches Bash-Skript für die MySQL-Datenbanksicherung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn