Redis数据备份方案
根据以上修改redis的备份脚本 #!/bin/sh#
for i in `netstat -nlpt|grep redis|awk -F: '{print $2}'|awk '{print $1}'`
do
idt=`redis-cli -p $i info |grep role|awk -F: '{print $2}'|tr -d '\r'`
### tr -d ‘\r’去掉换行符
#根据redis的角色进行备份,master不开启AOF持久化,通过bgsave对RDB快照;slave开启AOF持久化,通过bgrewriteaof进行备份;
case $idt in
master)
redis-cli -h 127.0.0.1 -p $i -a pwd bgsave
;;
slvae)
redis-cli -h 127.0.0.1 -p $i -a pwd bgrewriteaof
;;
*)
exit 1
;;
esac
done
sleep 600
tt=`date +"%Y%m%d-%H%M%S"` ###按照日期时间格式进行备份
echo "--------------------------$tt------------------------------" >>/data/backup/redis_backup.log ##日志记录备份详情
#将备份的AOF或者RDB拷贝到备份目录下
for i in `find /data/ -name "*.aof"`
do
echo cp $i /data/backup/`basename $i`.$tt >> /data/backup/redis_backup.log
/bin/cp -f $i /data/backup/`basename $i`.$tt
done
for i in `find /data/ -name "dump*.rdb"`
do
echo cp $i /data/backup/`basename $i`.$tt >>/data/backup/redis_backup.log
/bin/cp -f $i /data/backup/`basename $i`.$tt
done
#因所有备份都是全库备,所以按日期删除4天以前的备份数据
cd /data/backup
find . \( -name "appendonly*" -o -name "dump*" \) -mtime +4 -exec rm -f {} \;
页:
[1]