Advertisement
Guest User

mongo backup shell

a guest
Jul 18th, 2017
467
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. server=""
  4. port=""
  5. database=""
  6. username="backup"
  7. password=""
  8. s3bucket="backup/mongodb-rs-1"
  9.  
  10. mandrillkey=""
  11. sendTo=""
  12.  
  13. main () {
  14.  
  15. echo -e "Creating MongoDB dump";
  16.  
  17. currdate=$( date +%Y-%m-%d_%H-%M )
  18. dumpOutput="all-databases"-$currdate
  19. filename=$dumpOutput".tar.gz"
  20.  
  21. export PATH="$PATH:/usr/local/bin"
  22.  
  23. mongodump --host $server --port $port --username $username --password $password --out $dumpOutput
  24.  
  25. tar -zcvf $filename $dumpOutput
  26.  
  27. # check if file exists
  28. if [[ ! -f $filename ]]; then
  29.  
  30. #send_message "There was a problem with mongodb dump"
  31. return
  32.  
  33. fi
  34.  
  35. aws s3 cp $filename s3://$s3bucket/$filename
  36.  
  37. rm $filename
  38. rm -rf $dumpOutput
  39.  
  40.  
  41. }
  42.  
  43.  
  44. send_message () {
  45.  
  46. msg='{ "async": false, "key": "'$mandrillkey'", "message": { "from_email": "no-reply@onscroll.com", "from_name": "OnScroll", "headers": { "Reply-To": "dev@onscroll.com" }, "return_path_domain": null, "subject": "MongoDB backup error", "text": "'$1'", "to": [ { "email": "'$sendTo'", "type": "to" } ] } }'
  47. results=$(curl -A 'Mandrill-Curl/1.0' -d "$msg" 'https://mandrillapp.com/api/1.0/messages/send.json' -s 2>&1);
  48. echo "$results" | grep "sent" -q;
  49. if [ $? -ne 0 ]; then
  50. echo "An error occured: $results";
  51. exit 2;
  52. fi
  53.  
  54.  
  55.  
  56. }
  57.  
  58. file_size () {
  59.  
  60. size=$(
  61. ${DU:-du} --apparent-size --block-size=1 "$1" 2>/dev/null ||
  62. ${GDU:-gdu} --apparent-size --block-size=1 "$1" 2>/dev/null ||
  63. ${FIND:-find} "$1" -printf "%s" 2>/dev/null ||
  64. ${GFIND:-gfind} "$1" -printf "%s" 2>/dev/null ||
  65. ${STAT:-stat} --printf="%s" "$1" 2>/dev/null ||
  66. ${STAT:-stat} -f%z "$file" 2>/dev/null ||
  67. ${WC:-wc} -c <"$1" 2>/dev/null
  68. )
  69. q=$?; [ $q -eq 0 ] || exit $q
  70.  
  71. echo "$size" | awk '{print $1}'
  72.  
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement