您的位置:首页 > 运维架构 > Shell

shell脚本使用两个数组,判断一个变量是否在数组里面的例子

2012-03-28 20:51 966 查看
最近公司里面每次上线后端app的load都会狂飙,只好重启web服务器,以断开旧的连接,好让新的连接能够进来,所以,写一个重启的脚本来完成这项任务。

因为web服务器有两个类型,nginx和apache,需要设置两个数组,一个保存所有机器的列表,一个保存nginx的机器列表,在遍历web服务器列表的同时,判断是否属于nginx的列表,如果是执行nginx fast-cgi的重启,如果不是,重启apache。

下面是脚本的具体内容:

#!/bin/bash
. common.sh
ng=( "10.10.3.2" "10.10.3.3" "10.10.3.13" "10.10.3.15" "10.10.3.39" )

app_restart () {
for i in "$@"
do
echo "${ng[@]}" |grep -wq "$i"
if [ $? == 0 ];then
TIME=`date +%F-%T`
ssh 10.10.3.2 -t "sudo sudo /etc/init.d/php-fpm reload"
if [ $? -ne 0 ];then
echo "$TIME $i Failed to start" |tee ./error_list
fi
echo "$TIME $i nginx"
else
TIME=`date +%F-%T`
echo "$TIME $i"
ssh $i -t "sudo /etc/init.d/httpd graceful"
if [ $? -ne 0 ];then
echo "$TIME $i Failed to start" |tee ./error_list
fi
echo "$TIME $i apache"

fi
sleep 10
#          sleep 1
done
}

case "$1" in
city)
app_restart ${arrCityAppServer[@]}
;;
my)
app_restart ${arrMyAppServer[@]}
;;
*)
echo $"Usage: $0 {city|my}"
exit 1
esac


本文出自 “女运维-cathy” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐