Navigation
Artikel
Stuff
RSS Feeds
|
Sourcecodes - mysql-backupSprachenübersicht/Bash 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? Sprachenübersicht/Bash/mysql-backup |