Small MySQL backup shell script


/ Published in: MySQL
Save to your folder(s)



Copy this code and paste it in your HTML
  1. #!/bin/bash
  2.  
  3. #set -x
  4. #set $(date)
  5. #str_Tag=$(date +%A);
  6.  
  7. BACKUP_DIR="/backup_mysql"
  8. MYSQL_PWD="secretPass"
  9.  
  10. echo "********** saving MySQL-Databases ****"
  11. DBASELIST=`mktemp`
  12. mysqlshow -p$MYSQL_PWD | awk '{print $2}' | grep -v Databases | sort >$DBASELIST
  13.  
  14. # Wohin sollen die ganzen Backups geschrieben werden?
  15. cd $BACKUP_DIR
  16.  
  17. # letztes Backup nach $BACKUP_DIR/last verschieben
  18. mv $BACKUP_DIR/*gz $BACKUP_DIR/last/
  19.  
  20. # MySQL Cache auf HDD schreiben und Tabellen vor Veraenderungen schuetzen
  21. mysql -u root -p$MYSQL_PWD mysql -e "flush tables with read lock" -v
  22.  
  23. # Sicherung der einzelnen Tabellen
  24. for x in `cat $DBASELIST`; do
  25. echo " saving database: $x";
  26. mysqldump --opt -p$MYSQL_PWD $x >$x.sql;
  27. tar cfvz $x.tar.gz $x.sql > /dev/null 2>&1
  28. rm $x.sql
  29. done;
  30.  
  31. # Tabellen nach der Sicherung wieder freigeben
  32. mysql -u root -p$MYSQL_PWD mysql -e "unlock tables" -v
  33. echo -e "\033[40;1;32m Done \033[0m..."
  34. echo ""

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.