Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- DB_HOST="127.0.0.1"
- DB_PORT="27017"
- DB_USER="admin"
- DB_PASSWD="admin123"
- COMP="gzip"
- DIR=$(cd "$(dirname "${BASE_SOURCE[0]}")" && pwd)
- BACKUPDIR="$DIR/backup"
- mkdir -p $BACKUPDIR/{hourly,daily,weekly,monthly}
- if [ "$DB_USER" ]; then
- OPT="$OPT --username=$DB_USER --password=$DB_PASSWD"
- fi
- function dbdump() {
- mongodump --quiet --host=$DB_HOST:$DB_PORT --out="$1" $OPT
- if [ -e "$1" ]; then
- return 0
- fi
- echo "ERROR: Failed to create dumpfile: $1" >&2 || return 1
- }
- function dbcompress () {
- SUFFIX=""
- dir=$(dirname "$1")
- file=$(basename "$1")
- if [ -n "$COMP" ]; then
- [ "$COMP" = "gzip" ] && SUFFIX=".tgz"
- cd "$dir" || return 1
- tar -cf - "$file" | $COMP --stdout | cat > "${file}${SUFFIX}"
- cd - >/dev/null || return 1
- else
- echo "No compression option set, check advanced settings"
- fi
- return 0
- }
- echo "Start backup of Database Server - $HOST on $DBHOST"
- echo ======================================================================
- echo "Backup Start $(date)"
- echo ======================================================================
- # extend it to take weekly and daily backups
- FILE="$BACKUPDIR/monthly/$(date +%Y-%m-%d_%Hh%Mm).$(date +%B)"
- if [[ -z "$FILE" ]] ; then
- echo "ERROR: No backup frequency was chosen."
- exit 1
- fi
- dbdump "$FILE" && dbcompress "$FILE"
- echo ----------------------------------------------------------------------
- echo "Backup End $(date)"
- echo ======================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement