testingRedis.sh脚本内容如下:
##打印时间
echo "-------`date "+%Y-%m-%d %H:%M:%S"`------"
#端口号数组
redis_array=(7001 7002 7003 7004 7005 7006)
#循环数组
for a in ${redis_array[@]}
do
#lsof 命令不同的机器会在不同的目录下 使用which lsof 来查找 我的机器位置是/sbin/lsof
b=`/sbin/lsof -i:$a |grep 'redis-ser' |grep -v grep |grep -v agent|sort |tail -1 |cut -f 1 -d' '`
#没有匹配到redis进程
if [ "$b" != 'redis-ser' ];then
echo "redis $a instance is shutdown..."
/picclife/redis/redis5/bin/redis-server /picclife/redis/redis5/cluster/$a/redis$a.conf ##启动redis实例
echo "redis $a instance has start..."
#可以匹配到redis进程
else
echo "redis $a instance is running..."
fi
done
##再添加定时任务
crontab -e
##将下面这行命令添加到定时任务中,主要是指定脚本位置,输出日志位置
*/5 * * * * sh /picclife/redis/redis5/testingRedis.sh 1>>/picclife/redis/redis5/testingRedis.log 2>&1