Guest User

MySQL backup

a guest
Apr 22nd, 2013
461
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.10 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. MyUSER="root"
  4. MyPASS="***password here***"
  5. MyHOST="localhost"
  6.  
  7. MYSQL="$(which mysql)"
  8. MYSQLDUMP="$(which mysqldump)"
  9.  
  10. #MYSQL="/usr/local/bin/mysql"
  11. #MYSQLDUMP="/usr/local/bin/mysqldump"
  12.  
  13. CHOWN="$(which chown)"
  14. CHMOD="$(which chmod)"
  15. GZIP="$(which gzip)"
  16.  
  17. DEST="/var/backups/mysql/"
  18.  
  19. MBD="$DEST"
  20. HOST="$(hostname)"
  21. NOW="$(date +"%Y%m%d")"
  22.  
  23. FILE=""
  24. DBS=""
  25.  
  26. # DO NOT BACKUP these databases, delemiter SPACE
  27. IGN="mysql information_schema"
  28.  
  29. rm -rf "$DEST/*"
  30.  
  31. # Get all database list first
  32. DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"
  33.  
  34. for db in $DBS
  35. do
  36.  
  37.     skipdb=-1
  38.     if [ "$IGN" != "" ]; then
  39.     for i in $IGN
  40.     do
  41.         [ "$db" == "$i" ] && skipdb=1 || :
  42.     done
  43.     fi
  44.  
  45.     if [ "$skipdb" == "-1" ] ; then
  46.     MBD="$DEST/$db"    
  47.     [ ! -d $MBD ] && mkdir -p $MBD || :
  48.     TABLES="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS $db -Bse 'show tables')"
  49.     for table in $TABLES
  50.     do
  51.         echo "$db/$table"
  52.         FILE="$MBD/$table.sql.gz"
  53.            $MYSQLDUMP --opt -u $MyUSER -h $MyHOST -p$MyPASS $db $table | $GZIP -9 > $FILE
  54.     done
  55.     fi
  56.  
  57. done
Advertisement
Add Comment
Please, Sign In to add comment