Skip to content

Instantly share code, notes, and snippets.

@adamcharnock
Created July 24, 2010 14:16
Show Gist options
  • Save adamcharnock/488713 to your computer and use it in GitHub Desktop.
Save adamcharnock/488713 to your computer and use it in GitHub Desktop.
#!/bin/bash
if [[ ! -n "$1" || ! -n "$2" ]]
then
echo "Usage: `basename $0` environment port"
exit 1
fi
declare -i date
declare -i lastsave
environment=$1
port=$2
date=`date +%s`
if [[ $environment -eq "dev" || $environment -eq "localdev" ]]
then
echo "Skipping backup for environment '$environment'"
exit 0
fi
~/redis/redis-cli -p $port bgsave
lastsave=`~/redis/redis-cli -p $port lastsave | cut -d" " -f2`
while [ "$lastsave" -lt "$date" ]
do
sleep 1
lastsave=`~/redis/redis-cli -p $port lastsave | cut -d" " -f2`
done
suffix=`date +%Y-%m-%d_%H-%M-%S`
# Save locally
mkdir -p /mounts/redis-backup/$environment
cp /mounts/redis/$environment/dump.rdb /mounts/redis-backup/$environment/$environment-$suffix.rdb
# SCP to remote host
ssh [email protected] mkdir -p /home/pnbackup/redis/$environment
scp /mounts/redis-backup/$environment/$environment-$suffix.rdb pnbackup@YOURREMOTEHOST:~/redis/$environment/$environment-$suffix.rdb
# remove backups older than 48 hours
cd /mounts/redis-backup/$environment/
ls -t /mounts/redis-backup/$environment/ | tail -n +48 | xargs rm -f
cd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment