根剧业务有个从redis合并数据的需求
写了一个脚本进行数据合并,可以通过外部传参数进来。
#!/bin/bash
srtdb=srtdb
enddb=enddb
date=$(date +%Y-%m-%d-%H-%M)
filename=db_${date}.json
dir=~/
redis-dump -v
if [ $? -eq 0 ]; then
echo 'redis-dump 已经安装'
else
echo 'redis数据拉取软件未正确安装,请检查'
exit;
fi
#echo '请输入要拉取数据库编号:'
while true; do
# read srtdb
read -p "请输入要拉取数据库编号: " strdb
if [[ "$strdb" =~ ^[0-9]+$ ]]; then
echo "正在下载${strdb}数据库文件"
redis-dump -u :'password'@127.0.0.1:6379 -d $strdb > ${dir}${filename}
if [ $? -eq 0 ]; then
echo "数据文件已经存到${dir}${filename}"
else
echo '数据文件存取失败'
exit;
fi
break
else
echo "错误:你输入的不是整数,请重新输入。"
fi
done
echo '请输入上传目标数据库编号:'
while true; do
read enddb
if [[ "$enddb" =~ ^[0-9]+$ ]]; then
echo '正在修改上传数据文件'
sed -i "s/${strdb}/${enddb}/" ${dir}${filename}
echo "正在上传文件至目标${enddb}数据库"
< ${dir}${filename} redis-load -n -u :'password'@127.0.0.1:6379
if [ $? -eq 0 ]; then
echo "数据文件已经上传到目标${enddb}数据库"
else
echo '数据文件上传失败'
exit;
fi
break
else
echo "错误:你输入的不是整数,请重新输入。"
fi
done
评论区