Guest User

Untitled

a guest
Jun 22nd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. die() {
  4. ERROR_MESSAGE="Sometning went wrong..."
  5. if [[ -n "$1" ]]; then
  6. ERROR_MESSAGE="Error on: $1"
  7. fi
  8. logger -t mysqlbackup -s "$ERROR_MESSAGE"
  9. exit 1
  10. }
  11.  
  12. ########################################
  13.  
  14. if [[ ${UID} != 0 ]]; then
  15. die "Not root!"
  16. fi
  17.  
  18. if [[ -n "$1" ]]; then
  19. FILE_DIR="$1"
  20. else
  21. die "Unknown dir!"
  22. fi
  23.  
  24. FILE_COUNTS=0
  25. if [[ -n "$2" ]]; then
  26. FILE_COUNTS=$(expr 1 + $2)
  27. fi
  28.  
  29. ########################################
  30.  
  31. HOST_NAME="$(hostname)"
  32. if [[ -z "${HOST_NAME}" ]]; then
  33. HOST_NAME="unknown"
  34. fi
  35.  
  36. ########################################
  37.  
  38. CONFIG="$(mktemp)"
  39. echo "[mysqldump]" > "${CONFIG}"
  40.  
  41. cat /etc/mysql/debian.cnf | grep "host" | head -n1 >> "${CONFIG}" || die "host"
  42. cat /etc/mysql/debian.cnf | grep "user" | head -n1 >> "${CONFIG}" || die "user"
  43. cat /etc/mysql/debian.cnf | grep "password" | head -n1 >> "${CONFIG}" || die "password"
  44. cat /etc/mysql/debian.cnf | grep "socket" | head -n1 >> "${CONFIG}" || die "socket"
  45.  
  46. mkdir -p "${FILE_DIR}"
  47. CURDATE=$(date '+%Y%m%d_%H%M%S')
  48.  
  49. mysqldump --defaults-file="${CONFIG}" --all-databases | gzip -7 --rsyncable > "${FILE_DIR}/${HOST_NAME}-mysql-${CURDATE}.sql.gz"
  50. rm "${CONFIG}"
  51.  
  52. ########################################
  53.  
  54. if [[ ${FILE_COUNTS} > 0 ]]; then
  55. OLD_PWD=${PWD}
  56. cd ${FILE_DIR}
  57. ls -1 ${HOST_NAME}-mysql-* | tail -n +${FILE_COUNTS} | xargs rm -f 2>&1
  58. cd ${OLD_PWD}
  59. fi
Add Comment
Please, Sign In to add comment