· 7 years ago · Dec 09, 2018, 05:12 AM
1#!/bin/sh
2
3#Change these settings to match your system
4ACCESS_KEY='YOUR_ACCESS_KEY'
5ACCESS_SECRET='YOUR_SECRET_KEY'
6BUCKET="YOUR_BUCKET_NAME"
7DATABASE="YOUR_DATABASE_NAME"
8# Do not change anything below this line
9
10tool=`which s3multiput s3cmd`
11cmdname=`basename $tool`
12
13case $cmdname in
14 s3cmd|s3multiput) ;;
15 *)
16 echo 'Neither s3cmd nor s3multiput is installed on this system.'
17 exit 1
18 ;;
19esac
20
21datename="db_daily_"`eval date +%d`""
22filename="$DATABASE-1.tar"
23
24echo "Database Backup: $datename started..."
25
26mongodump -d $DATABASE >> /dev/null
27
28if [ ! -d $datename ]; then
29 mkdir $datename
30fi
31
32# Split tarball up into 100 MB chunks for uploading to S3
33tar --multi-volume --tape-length=102400 --info-script=./tarsplitter.sh --totals -c -f "$datename/$filename" dump
34# Upload archives to S3
35case $cmdname in
36 s3cmd)
37 s3cmd sync --delete-removed ./$datename/ s3://$BUCKET/$datename/
38 ;;
39 s3multiput)
40 s3multiput --access_key "$ACCESS_KEY" --secret_key "$ACCESS_SECRET" --bucket "$BUCKET" --prefix $PWD/ ./$datename/
41 ;;
42esac
43
44echo "Backup finished."
45
46# Clean up after ourselves
47rm -Rf $datename/
48rm -Rf dump/