Guest User

Untitled

a guest
Oct 15th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. set -o errexit
  4. exec &>> /var/log/maria_db_backup.log
  5.  
  6. # Options
  7. BACKUP_PATH="/opt/db_backups"
  8. DATE=$(/bin/date +"%d-%b-%Y")
  9.  
  10. logger ()
  11. {
  12. echo "$(/bin/date +"%d-%b-%Y %H:%M:%S") $1"
  13. }
  14.  
  15. logger "Starting mariadb backup on ${BACKUP_PATH}"
  16.  
  17. # Database credentials
  18. USER="root"
  19. PASSWD="$(/usr/bin/openssl enc -base64 -d <<< YnVyYWRhIHBhcm9sYSB5b2sga2FuZMSxcmTEsW0gOi0pCg==)" # simply hide password from the script
  20. DB_NAME="employees"
  21.  
  22. # Create backup directory if it does not exist
  23. [ -d ${BACKUP_PATH} ] || mkdir -p ${BACKUP_PATH}
  24.  
  25. logger "Getting tables from DB"
  26. # Parse tables from db that defined above
  27. TABLES=$(/usr/bin/mysql --user=${USER} --password=${PASSWD} --execute="show tables in employees" | \
  28. /usr/bin/awk "{print $2}" | /bin/grep --invert-match --ignore-case "tables_in"| /usr/bin/tr '\n' ' ')
  29.  
  30.  
  31. logger "Dump tables into SQL file"
  32. for TABLE in ${TABLES}
  33. do
  34. /usr/bin/mysqldump --user=${USER} --password=${PASSWD} ${DB_NAME} ${TABLE} > "${BACKUP_PATH}"/"${DB_NAME}"-"${TABLE}"-"${DATE}".sql
  35. done
  36.  
  37. logger "Compressing SQL files"
  38.  
  39. /bin/tar -czvf "${BACKUP_PATH}"/backup-"${DB_NAME}"-"${DATE}".tar.gz "${BACKUP_PATH}"/*-"${DATE}".sql >/dev/null 2>&1 && /bin/rm --recursive --force "${BACKUP_PATH}"/*-"${DATE}".sql
  40.  
  41. logger "${BACKUP_PATH}/backup-${DB_NAME}-${DATE}.tar.gz created"
  42. logger "Finished mariadb backup"
Add Comment
Please, Sign In to add comment