远行的心 发表于 2018-11-7 11:47:40

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]
查看完整版本: Redis数据备份方案