#!/bin/sh
. /etc/init.d/functions
#是否完成备份结果,0为完成备份,1为未完成备份
result=`redis-cli -h 127.0.0.1 -a 123456 --no-auth-warning info persistence | grep 'rdb_bgsave_in_progress' | sed -rn 's/.*:([0-9]+).*/\1/p'`
#备份快照存放文件夹,可自行定义
BACKDIR=/data/redis
#redis的RDB快照生成文件位置,yum安装默认位置为/var/lib/redis,可在配置文件中定义
DIR=/var/lib/redis/
#快照文件名称,yum安装默认名称为dump.rdb,可在配置文件中定义
FILE=dump.rdb
#redis密码
PASS=123456
#时间
DATE=`date +%F-%H:%M:%S`
#执行备份命令
redis-cli -h 127.0.0.1 -a $PASS --no-auth-warning bgsave
#判断备份是否完成
until [ $result -eq 0 ];do
sleep 1
result=`redis-cli -h 127.0.0.1 -a 123456 --no-auth-warning info persistence | grep 'rdb_bgsave_in_progress' | sed -rn 's/.*:([0-9]+).*/\1/p'`
done
#将备份完的文件拷贝到指定目录下
[ -e $BACKUP ] || { mkdir -p $BACKDIR ; chown -R redis.redis $BACKDIR; }
mv $DIR/$FILE $BACKDIR/dump-${DATE}.rdb && action "Backup redis RDB"