Sourcecodes - mysql-backup

Sprachenübersicht/Bash

mysql-backup

Diese Seite wurde 2922 mal aufgerufen.

Dieser Artikel wurde in einem Wikiweb System geschrieben, das heißt, Sie können die Artikel jederzeit editieren, wenn Sie einen Fehler gefunden haben, oder etwas hinzufügen wollen.

Editieren Versionen Linkpartnerschaft Bottom Printversion

Keywords: mysql backup all databases

Dieses kurze Bash-Skript sichert entweder eine oder alle Datenbanken eines MySQL-Servers als einzelne MySQL-Dumps. Beim Restore muss dann nicht mühsam die gesuchte DB aus einem kompletten Dump extrahiert werden.

Code:


#!/bin/bash
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"

DIR="/var/backups/mysql"
USER="mysq-backup-user"
PASS="mysq-pw"

if [ -z $1 ]; then
 echo "database name missing! use --all for all db's"
 exit 1;
elif [ $1 = '--all' ]; then
 echo "full backup"
 for i in `mysqlshow -u${USER} -p${PASS} | awk '{print $2}' | grep -v Databases`; do
  if test -f ${DIR}/${i}.sql; then
   echo "Move ${DIR}/${i}.sql to ${DIR}/${i}.sql.1"
   mv ${DIR}/${i}.sql ${DIR}/${i}.sql.1
  fi
  echo "dump ${i} to ${DIR}/${i}.sgl"
  mysqldump -u${USER} -p${PASS} --opt -QF -r${DIR}/${i}.sql $i
  chmod 600 ${DIR}/${i}.sql
 done;
elif [ -n $1 ]; then
 echo "Starting backup of $1"
 if test -f $DIR/$1.sql; then
  echo "Move $DIR/$1.sql to $DIR/$1.sql.1"
  mv ${DIR}/${1}.sql ${DIR}/${1}.sql.1
 fi
 mysqldump -u${USER} -p${PASS} --opt -QF -r${DIR}/${1}.sql $1
 chmod 600 ${DIR}/${1}.sql
fi
echo "Done"
exit 0;

Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?

Editieren Versionen Linkpartnerschaft Top Printversion

Haben Sie einen Fehler gefunden? Dann klicken Sie doch auf Editieren, und beheben den Fehler, keine Angst, Sie können nichts zerstören, der Artikel kann wiederhergestellt werden.

Sprachenübersicht/Bash/mysql-backup