Created
July 14, 2015 18:10
-
-
Save osv/8f6fc7edef7baa787da4 to your computer and use it in GitHub Desktop.
mongo dump and send via scp to remote
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
USERNAME="<username>" | |
PASSWORD="<password>" | |
DBNAME="<mongo db mae>" | |
# export dump pattern | |
FILE_NAME="mongo-dump" | |
# scp save directory | |
REMOTEDIR="user@foo.bar:" | |
DUMPDIR="/webapp/data/dump" | |
TMPDIR=$(mktemp -d /tmp/export.XXXXXXXXXX) | |
myrotate() { | |
# usage: myrotate /path/to/map-0.jpg | |
local dest=$1 | |
local dest_dir=$(dirname "$dest") | |
local dest_prefix=$(basename "${dest%-*}") | |
local dest_ext=${dest##*.} | |
local n | |
printf "%s\n" "$dest_dir/${dest_prefix}"-*."$dest_ext" | | |
sort -V -r | | |
while IFS= read -r file; do | |
n=${file##*-} | |
n=${n%.*} | |
echo mv "$file" "$dest_dir/${dest_prefix}-$((n+1)).$dest_ext" | |
done | |
} | |
# dump mongodb db to "meteor" db | |
mongodump -h 127.0.0.1 -d $DBNAME --username=$USERNAME --password=$PASSWORD -o $TMPDIR/mongo/ | |
tar -C $TMPDIR -cvzf "$DUMPDIR/${FILE_NAME}.tar.gz" . | |
echo "cleanning tmp files" | |
rm -rf $TMPDIR | |
echo "Done exporting" | |
pushd $DUMPDIR | |
# rotate dumps | |
for i in {8..0}; do | |
this=${FILE_NAME}-$i.tar.gz | |
[ -e $this ] && mv $this ${FILE_NAME}-$((i+1)).tar.gz; | |
done | |
mv ${FILE_NAME}.tar.gz ${FILE_NAME}-0.tar.gz | |
# save last dump | |
scp ${FILE_NAME}-0.tar.gz "$REMOTEDIR" | |
popd |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
nice useful!