Guest User

Untitled

a guest
Dec 12th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Recommended:
  4. # Do not use root user to create backups.
  5. #
  6. # Create a new user
  7. # CREATE USER 'backup'@'localhost' IDENTIFIED BY '<strong_password>';
  8. #
  9. # Grant the following privileges to backup user
  10. # GRANT SELECT, SHOW VIEW, RELOAD, REPLICATION CLIENT, EVENT, TRIGGER ON *.* TO 'backup'@'localhost';
  11.  
  12. BACKUP_DIR="/backups/mysql-dumps"
  13. MYSQL_USER="<user>"
  14. MYSQL=/usr/bin/mysql
  15. MYSQL_PASSWORD="<password>"
  16. MYSQLDUMP=/usr/bin/mysqldump
  17.  
  18. # check if backup directory exists
  19. if [ -d "$BACKUP_DIR" ]; then
  20. # remove all previous backups dumps
  21. rm -f $BACKUP_DIR/*
  22. else
  23. # create directory to save dump
  24. mkdir -p "$BACKUP_DIR"
  25. fi
  26.  
  27. # get all databases names
  28. databases=`$MYSQL -u $MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`
  29.  
  30. # loop through databases and dump each one to a specific file
  31. for db in $databases; do
  32. $MYSQLDUMP -x -e --events --ignore-table=mysql.event -u $MYSQL_USER -p$MYSQL_PASSWORD --databases $db > $BACKUP_DIR/$db-$(date "+%Y%m%d").sql
  33. done
Add Comment
Please, Sign In to add comment