Guest User

Untitled

a guest
Jan 19th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.15 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. #########################
  4. ######TO BE MODIFIED#####
  5.  
  6.  
  7. ### System Setup ###
  8. BACKUP=/path/to/backup/repex
  9.  
  10. ### MySQL Setup ###
  11. MUSER="user"
  12. MPASS="password"
  13. MHOST="host"
  14.  
  15.  
  16. ######DO NOT MAKE MODIFICATION BELOW#####
  17. #########################################
  18.  
  19. ### Binaries ###
  20. TAR="$(which tar)"
  21. GZIP="$(which gzip)"
  22. FTP="$(which ftp)"
  23. MYSQL="$(which mysql)"
  24. MYSQLDUMP="$(which mysqldump)"
  25.  
  26. ### Today + hour in 24h format ###
  27. NOW=db-$(date +"%Y-%H-%d")
  28.  
  29. ### Create hourly dir ###
  30.  
  31. mkdir $BACKUP/$NOW
  32.  
  33. ### Get all databases name ###
  34. DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
  35. for db in $DBS
  36. do
  37.  
  38. ### Create dir for each databases, backup tables in individual files ###
  39.   mkdir $BACKUP/$NOW/$db
  40.  
  41.   for i in `echo "show tables" | $MYSQL -u $MUSER -h $MHOST -p$MPASS $db|grep -v Tables_in_`;
  42.   do
  43.     FILE=$BACKUP/$NOW/$db/$i.sql.gz
  44.     echo $i; $MYSQLDUMP --add-drop-table --allow-keywords -q -c -u $MUSER -h $MHOST -p$MPASS $db $i | $GZIP -9 > $FILE
  45.   done
  46. done
  47.  
  48. ### Compress all tables in one nice file to upload ###
  49.  
  50. ARCHIVE=$BACKUP/$NOW.tar.gz
  51. ARCHIVED=$BACKUP/$NOW
  52.  
  53. $TAR -cvf $ARCHIVE $ARCHIVED
Add Comment
Please, Sign In to add comment