Backup von Datenbanken in einer Entwicklungsumgebung

Ich habe hier mal ein kleines bash-script geschrieben, womit man alle Datenbanken in einer Entwicklungsumgebung automatisch sichern kann,- vielleicht rette ich damit ja das eine oder andere Leben. Das ganze in eine Text-Datei schreiben (zb. backup_databases.sh), Konfiguration ausfüllen, abspeichern und als "Ausführbar" markieren. Wenn das ganze dann als Cronjob eingetragen wird, braucht man sich wohl keine Sorgen mehr zu machen.


#! /bin/bash ####################### ####################### ######### config - start DATE=$(date +%Y-%m-%d); DIR_WORK1=/PATH-TO-DESTINATION"/"$DATE DIR_WORK2=/PATH-TO-DESTINATION"/"$DATE"/"databases USERNAME=USERNAME_FOR_MYSQL PASSWORD=PASSWORD_FOR_MYSQL USERNAME_LINUX=USERNAME_IN_LINUX ######### config - end ###################### ###################### ######### create new dirs in destination if [ ! -d $DIR_WORK1 ]; then mkdir $DIR_WORK1; fi if [ ! -d $DIR_WORK2 ]; then mkdir $DIR_WORK2; fi ######### Make sure the user has write permissions in the destination directory chown -Rf $USERNAME_LINUX:$USERNAME_LINUX $DIR_WORK1 $DIR_WORK2; fi ######### log in as user into msql DATABASES=`mysql -u$USERNAME -p$PASSWORD -Bse 'show databases'` ######### backup all databases for DATABASE in $DATABASES; do mysqldump -u$USERNAME -p$PASSWORD $DATABASE > $DIR_WORK2"/"${DATABASE}.sql tar -czf $DIR_WORK2"/"${DATABASE}.tar.gz $DIR_WORK2"/"${DATABASE}.sql rm $DIR_WORK2"/"${DATABASE}.sql done ######### write logfile echo $DATE - Backup of databases executed >> $HOME/backup.log
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.