Articlename: mysql-backup Keywords: mysql backup all databases Date: 25.06.2007, 22:59 Views: 1614 Categoryname: Bash ---------------------------------------- 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; ------- End-Code -------