Guest User

Untitled

a guest
Feb 6th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. set -e
  4.  
  5. DATE_FORMAT="%Y-%m-%d"
  6. DATE_CREATION=$(date "+${DATE_FORMAT}")
  7. DATE_REMOVAL=$(date -d "20 day ago" "+${DATE_FORMAT}")
  8.  
  9. DIRECTORY_BASE="/backup/mysql"
  10. DIRECTORY_CREATION="${DIRECTORY_BASE}/${DATE_CREATION}"
  11. DIRECTORY_REMOVAL="${DIRECTORY_BASE}/${DATE_REMOVAL}"
  12.  
  13. MYSQL_USER="root"
  14. MYSQL_PASSWORD="root"
  15. MYSQL_HOST="127.0.0.1"
  16.  
  17. echo "Creating '${DIRECTORY_CREATION}' backup directory"
  18. mkdir -p "${DIRECTORY_CREATION}"
  19. echo
  20.  
  21. mysql -u $MYSQL_USER -h $MYSQL_HOST -p$MYSQL_PASSWORD -Bse 'SHOW DATABASES' |
  22. egrep -v '^(information_schema|mysql|performance_schema)$' |
  23. while read database; do
  24. echo "- Dumping '${database}' database"
  25. filename="${DIRECTORY_CREATION}/${database}.${DATE_CREATION}.gz"
  26. mysqldump --single-transaction -u $MYSQL_USER -h ${MYSQL_HOST} -p${MYSQL_PASSWORD} ${database} |
  27. gzip -9 > "${filename}"
  28. done
  29. echo
  30.  
  31. if [ -d "${DIRECTORY_REMOVAL}" ]; then
  32. echo "Removing backup from ${DATE_REMOVAL}"
  33. rm -rf "${DIRECTORY_REMOVAL}"
  34. echo
  35. fi
  36.  
  37. echo "Finished!"
Add Comment
Please, Sign In to add comment