Guest User

Untitled

a guest
Nov 23rd, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. #!/bin/bash
  2. #
  3. # Script to backup all mysql tables as separate files
  4. #
  5. # $BACKUP_PATH/<date>/<db_name>/<host>_<table_name>.gz
  6.  
  7. # MySQL settings
  8. MYSQL_USER="root"
  9. MYSQL_PASS=""
  10. MYSQL_HOST="localhost"
  11.  
  12. # Ignore these databases (space separated)
  13. IGNORE="test"
  14.  
  15. # Backup path
  16. BACKUP_PATH="/usr/backup/databases"
  17.  
  18. #
  19. # End Configuration
  20. #
  21.  
  22. # Paths to programs
  23. MYSQL="$(which mysql)"
  24. MYSQLDUMP="$(which mysqldump)"
  25. CHOWN="$(which chown)"
  26. CHMOD="$(which chmod)"
  27. GZIP="$(which gzip)"
  28.  
  29. # Misc vars
  30. HOST="$(hostname)"
  31. NOW="$(date +"%d%m%Y")"
  32.  
  33. BACKUP_PATH+="/$NOW"
  34. MYSQL_PERMS="-u $MYSQL_USER -h $MYSQL_HOST"
  35.  
  36. IGNORE+=" information_schema mysql performance_schema"
  37.  
  38. echo $BACKUP_PATH
  39. if [ "$MYSQL_PASS" ] ; then
  40. MYSQL_PERMS+=" -p$MYSQL_PASS"
  41. fi
  42.  
  43. # Check backup path and create it if necessary
  44.  
  45. DBS="$($MYSQL $MYSQL_PERMS -Bse 'show databases')"
  46.  
  47. for DB in $DBS ; do
  48. if [[ "$IGNORE" =~ "$DB" ]] ; then
  49. echo "$(date +"%d-%m-%Y %H:%M:%S") Skipping $DB"
  50. continue
  51. fi
  52. # create path if it doesn't exist
  53. SUBPATH="$BACKUP_PATH/$DB"
  54. [ ! -d $SUBPATH ] && mkdir -p $SUBPATH || :
  55.  
  56. # Change permissions so only root can access backups
  57. $CHOWN 0.0 -R $SUBPATH
  58. $CHMOD 0600 $SUBPATH
  59.  
  60. echo "$(date +"%d-%m-%Y %H:%M:%S") Backing up $DB to $SUBPATH"
  61. TABLES="$($MYSQL $MYSQL_PERMS -Bse 'show tables from '$DB)"
  62. for TABLE in $TABLES ; do
  63. FILE="$SUBPATH/${HOST}_${TABLE}.sql.gz"
  64. $MYSQLDUMP $MYSQL_PERMS $DB $TABLE | $GZIP -9 > $FILE
  65. done
  66. echo "$(date +"%d-%m-%Y %H:%M:%S") ...done!"
  67. done
  68.  
  69. echo "$(date +"%d-%m-%Y %H:%M:%S") All done"
  70.  
  71. exit 0
Add Comment
Please, Sign In to add comment