Guest User

Untitled

a guest
Feb 5th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. #!/bin/bash
  2. ##########################
  3. ## Configure ##
  4. ##########################
  5. LOCALDIR=
  6. DATABASE_PASSWORD=
  7. DATABASE_USER=
  8. DATABASES=(
  9.  
  10. )
  11. HISTORY=3
  12.  
  13. ###########################
  14. ## Main ##
  15. ###########################
  16.  
  17. log() {
  18. echo -e "$(date "+%Y-%m-%d %T")" "$1" >> ${LOCALDIR}${DATE}.log
  19. }
  20.  
  21. export PGPASSWORD=${DATABASE_PASSWORD}
  22.  
  23. DATE=$(date +%Y-%m-%d)
  24. DATETIME=$(date +%Y-%m-%d_%H-%M)
  25. DELETEDATE=$(date --date "-$HISTORY DAY" +%Y-%m-%d)
  26. TEMPDIR=$(mktemp -d)/
  27.  
  28. log "backup start"
  29.  
  30. if [ ! -d "${LOCALDIR}" ]; then
  31. mkdir -p ${LOCALDIR}
  32. fi
  33. if [ ! -d "${TEMPDIR}" ]; then
  34. mkdir -p ${TEMPDIR}
  35. fi
  36.  
  37. for database in ${DATABASES[@]}; do
  38. pg_dump -U postgres -d ${database} -f ${TEMPDIR}${DATETIME}_${database}.sql
  39. if [ $? -ne 0 ]; then
  40. log "databases ${database} backup failed"
  41. exit 1
  42. fi
  43. log "backup database ${database}"
  44. done
  45.  
  46. tar -zcf ${LOCALDIR}${DATETIME}.tar.gz -C ${TEMPDIR} . --exclude .sql
  47. rm -rf ${TEMPDIR}
  48. rm -f ${LOCALDIR}${DELETEDATE}*.tar.gz
  49. rm -f ${LOCALDIR}${DELETEDATE}.log
  50. log "backup finish"
Add Comment
Please, Sign In to add comment