写一个keepalived中的redis_back.sh脚本
时间: 2024-02-21 13:01:27 浏览: 79
下面是一个简单的redis_back.sh脚本示例,用于备份redis数据库到指定目录:
```bash
#!/bin/bash
# 备份目录
BACKUP_DIR="/var/redis/backups"
# 备份文件名
BACKUP_FILE="redis_backup_$(date +%Y%m%d%H%M%S).rdb"
# redis-cli命令
REDIS_CLI="/usr/bin/redis-cli"
# redis服务器地址
REDIS_HOST="127.0.0.1"
# redis服务器端口
REDIS_PORT="6379"
# 执行BGSAVE命令备份redis数据库
$REDIS_CLI -h $REDIS_HOST -p $REDIS_PORT BGSAVE
# 等待BGSAVE命令执行完成
while [ $($REDIS_CLI -h $REDIS_HOST -p $REDIS_PORT lastsave | awk '{print $1}') -lt $($REDIS_CLI -h $REDIS_HOST -p $REDIS_PORT info persistence | grep rdb_last_save_time | awk -F: '{print $2}') ]
do
sleep 1
done
# 检查备份目录是否存在,如果不存在则创建
if [ ! -d $BACKUP_DIR ]; then
mkdir -p $BACKUP_DIR
fi
# 备份文件复制到备份目录
cp /var/lib/redis/dump.rdb $BACKUP_DIR/$BACKUP_FILE
# 删除过期的备份文件
find $BACKUP_DIR -type f -mtime +7 -delete
```
在使用该脚本时,需要注意以下几点:
1. 脚本需要在redis服务器上执行,确保redis-cli命令可用。
2. 脚本需要有执行权限,可以使用chmod命令添加执行权限。
3. 在keepalived的配置文件中,需要指定redis_back.sh脚本的路径,并将备份目录设置为共享目录,以便备用服务器可以访问该目录。
阅读全文