Advertisement
Guest User

Untitled

a guest
Aug 11th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.32 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. MyUSER=""     # USERNAME
  4. MyPASS=""       # PASSWORD
  5. MyHOST="localhost"          # Hostname
  6.  
  7. # Backup Dest directory, change this if you have someother location
  8. DEST="/backup"
  9.  
  10. # Main directory where backup will be stored
  11. MBD="$DEST/mysql"
  12.  
  13. mkdir -p "$MBD"
  14.  
  15. #creates a temporary directory and then after first command completes the 2nd removes it
  16. tmpdir=$(mktemp -d /backup/tmpXXXXXX); trap 'rm -rf "$tmpdir"' EXIT;
  17.  
  18. # Get data in dd-mm-yyyy format
  19. NOW="$(date +"%d-%m-%Y")"
  20.  
  21. # File to store current backup file
  22. FILE=""
  23. # Store list of databases
  24. DBS=""
  25.  
  26. # DO NOT BACKUP these databases
  27. IGGY="information_schema"
  28.  
  29. # Only root can access it!
  30. chown 0.0 -R "$DEST"
  31. chmod 0700 "$DEST"
  32.  
  33. # Get all database list first
  34. DBS="$("$MYSQL" -u "$MyUSER" -h "$MyHOST" -p "$MyPASS" -Bse 'show databases')"
  35.  
  36. for db in $DBS
  37. do
  38.     skipdb=-1
  39.     if [ "$IGGY" != "" ];
  40.     then
  41.     for i in $IGGY
  42.     do
  43.         [ "$db" == "$i" ] && skipdb=1 || :
  44.         done
  45.     fi
  46.  
  47.     if [ "$skipdb" == "-1" ] ; then
  48.     FILE="$tmpdir/$db.$HOSTNAME.$NOW.sql"
  49.     # do all inone job in pipe,
  50.     # connect to mysql using mysqldump for select mysql database
  51.     # and pipe it out to gz file in backup dir :)
  52.         "$MYSQLDUMP" -u "$MyUSER" -h "$MyHOST" -p "$MyPASS" "$db" > "$FILE"
  53.    fi
  54. done
  55.  
  56. tar -zcf mysqlBackup."$NOW".tar.gz "$tmpdir"/*.sql
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement