Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. DB_HOST="127.0.0.1"
  4. DB_PORT="27017"
  5. DB_USER="admin"
  6. DB_PASSWD="admin123"
  7. COMP="gzip"
  8.  
  9. DIR=$(cd "$(dirname "${BASE_SOURCE[0]}")" && pwd)
  10. BACKUPDIR="$DIR/backup"
  11. mkdir -p $BACKUPDIR/{hourly,daily,weekly,monthly}
  12.  
  13. if [ "$DB_USER" ]; then
  14. OPT="$OPT --username=$DB_USER --password=$DB_PASSWD"
  15. fi
  16.  
  17. function dbdump() {
  18. mongodump --quiet --host=$DB_HOST:$DB_PORT --out="$1" $OPT
  19. if [ -e "$1" ]; then
  20. return 0
  21. fi
  22. echo "ERROR: Failed to create dumpfile: $1" >&2 || return 1
  23. }
  24.  
  25. function dbcompress () {
  26. SUFFIX=""
  27. dir=$(dirname "$1")
  28. file=$(basename "$1")
  29. if [ -n "$COMP" ]; then
  30. [ "$COMP" = "gzip" ] && SUFFIX=".tgz"
  31. cd "$dir" || return 1
  32. tar -cf - "$file" | $COMP --stdout | cat > "${file}${SUFFIX}"
  33. cd - >/dev/null || return 1
  34. else
  35. echo "No compression option set, check advanced settings"
  36. fi
  37. return 0
  38. }
  39.  
  40. echo "Start backup of Database Server - $HOST on $DBHOST"
  41. echo ======================================================================
  42. echo "Backup Start $(date)"
  43. echo ======================================================================
  44.  
  45. # extend it to take weekly and daily backups
  46. FILE="$BACKUPDIR/monthly/$(date +%Y-%m-%d_%Hh%Mm).$(date +%B)"
  47.  
  48. if [[ -z "$FILE" ]] ; then
  49. echo "ERROR: No backup frequency was chosen."
  50. exit 1
  51. fi
  52.  
  53. dbdump "$FILE" && dbcompress "$FILE"
  54.  
  55. echo ----------------------------------------------------------------------
  56. echo "Backup End $(date)"
  57. echo ======================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement