脚本函数库:https://blog.csdn.net/anqixiang/article/details/89964048
#!/bin/bash
#AUTHOR:AN
#VERSION:1.0.0
#DATE:2019-05-21
#MODIFY:
#FUNCTION:1.部署Redis 2.修改默认端口,启用Redis集群
#DESCRIBE:
#NOTICES:
######################定义变量######################
Script_Path=/cloud_nsd/shell #脚本目录
Soft_Path=/cloud_nsd/soft #软件目录
#加载函数库
if [ -f "$Script_Path/myfunction.lib" ];then
source $Script_Path/myfunction.lib
else
echo -e "\033[31m函数库不存在\033[0m"
exit $NOEXIST
fi
#初始化安装redis
INIT_INSTALL(){
YUM gcc
YUM expect
CA_TAR $Soft_Path/redis/redis-4.0.8.tar.gz
cd /opt/redis-4.0.8
cecho 32 "编译安装......"
make &> /dev/null && make install &> /dev/null
expect << EOF
spawn /opt/redis-4.0.8/utils/install_server.sh
expect "]" {send "\r"}
expect "]" {send "\r"}
expect "]" {send "\r"}
expect "]" {send "\r"}
expect "]" {send "\r"}
expect "abort." {send "\r"}
expect "#" {send "exit\r"}
EOF
/etc/init.d/redis_6379 start &> /dev/null
ss -nutlp |grep 6379 &> /dev/null && OK redis || ERROR redis
}
#配置集群
#$1为主机位,如51
REDIS_CLUSTER(){
Redis_Conf=/etc/redis/6379.conf #配置文件路径
Exec=/etc/init.d/redis_6379 #启动脚本
Port=63$1 #端口号
IP=192.168.4.$1 #IP地址
ss -nutlp |grep 6379 &> /dev/null && $Exec stop &> /dev/null #先停止服务
sed -i "70c bind $IP" $Redis_Conf
sed -i "93c port $Port" $Redis_Conf
sed -i '815c cluster-enabled yes' $Redis_Conf #启用集群
sed -i "823c cluster-config-file nodes-$Port.conf" $Redis_Conf #指定集群信息文件
sed -i '829c cluster-node-timeout 5000' $Redis_Conf #请求超时5秒
#改变端口后需修改启动脚本
sed -i "43c \$CLIEXEC -h $IP -p $Port shutdown" $Exec
$Exec start
ss -nutlp |grep $Port && OK redis-cluster
}
#############################主程序#############################
INIT_INSTALL
REDIS_CLUSTER $1