平常在redis集群做测试的时候,启动比较麻烦,写了一个 shell 脚本:
脚本编码为:unix,
如果出现 function 无法运行的错误,检查一下是否是编码不对,为 dos:
可以使用 vim 命令打开脚本,执行 “:set ff ” 命令进行查看,可以使用 “:set ff = unix” 命令进行设置
#! /bin/bash
# 2018-09-15 编写redis启动脚本
#日志函数
redisPath="/usr/redis"
function infolog(){
DATE_S=`date "+%Y-%m-%d %H:%M:%S"`
echo "时间:${DATE_S} $1"
echo "时间:${DATE_S} $1" >> /opt/redis/logs/start.log
}
#日检测端口函数
check_port() {
infolog "正在检测端口..."
netstat -tlpn | grep "\b$1\b"
}
infolog "开始执行start all 脚本..."
infolog "开始执行 redis 启动脚本..."
if check_port 6379
then
infolog "redis 6379 端口存在"
else
infolog "redis 6379 端口未启动,开始启动端口..."
cd "$redisPath"
redis-server /opt/redis/conf/redis-6379.conf
infolog "启动完成 redis 6379 端口..."
fi
if check_port 6380
then
infolog "redis 6380 端口存在"
else
infolog "redis 6380 端口未启动,开始启动端口..."
cd "$redisPath"
redis-server /opt/redis/conf/redis-6380.conf
infolog "启动完成 redis 6380 端口..."
fi
if check_port 6381
then
infolog "redis 6381 端口存在"
else
infolog "redis 6381 端口未启动,开始启动端口..."
cd "$redisPath"
redis-server /opt/redis/conf/redis-6381.conf
infolog "启动完成 redis 6381 端口..."
fi
infolog "完成执行 redis 启动脚本..."
infolog "开始执行 redis-sentinel 哨兵 启动脚本..."
if check_port 26379
then
infolog "sentinel 26379 端口存在"
else
infolog "sentinel 26379 端口未启动,开始启动端口..."
cd "$redisPath"
redis-server /opt/redis/conf/sentinel-26379.conf --sentinel
infolog "启动完成 sentinel 26379 端口..."
fi
if check_port 26380
then
infolog "sentinel 26380 端口存在"
else
infolog "sentinel 26380 端口未启动,开始启动端口..."
cd "$redisPath"
redis-server /opt/redis/conf/sentinel-26380.conf --sentinel
infolog "启动完成 sentinel 26380 端口..."
fi
if check_port 26381
then
infolog "sentinel 26381 端口存在"
else
infolog "sentinel 26381 端口未启动,开始启动端口..."
cd "$redisPath"
redis-server /opt/redis/conf/sentinel-26381.conf --sentinel
infolog "启动完成 sentinel 26381 端口..."
fi
infolog "完成执行 redis-sentinel 哨兵 启动脚本..."
infolog "完成执行start all 脚本..."
infolog "结束..."