shell脚本使用两个数组,判断一个变量是否在数组里面的例子
2012-03-28 20:51
966 查看
最近公司里面每次上线后端app的load都会狂飙,只好重启web服务器,以断开旧的连接,好让新的连接能够进来,所以,写一个重启的脚本来完成这项任务。
因为web服务器有两个类型,nginx和apache,需要设置两个数组,一个保存所有机器的列表,一个保存nginx的机器列表,在遍历web服务器列表的同时,判断是否属于nginx的列表,如果是执行nginx fast-cgi的重启,如果不是,重启apache。
下面是脚本的具体内容:
本文出自 “女运维-cathy” 博客,谢绝转载!
因为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” 博客,谢绝转载!
相关文章推荐
- shell脚本读入一个变量,判断是否合法
- shell脚本中-n是判断一个变量是否是否有值
- 使用位运算实现判断一个数是否是2的n次方,实现不需要中间变量进行两个变量值的交换
- 判断一个数组(有n个数据,数组的值大于等于1小于等于N)里面是否有两个一样的数据
- thinkphp模板里面判断一个变量是否存在于一个数组中 相当于in_array() in 或range 标签
- javascript中判断一个值是否在数组中并没有直接使用
- PNPoly算法代码例子,判断一个点是否在多边形里面
- NSArray不用遍历能否判断一个对象是否存在在数组里面?
- 请教一个算法问题,有两个数组A,B,判断A中是否至少有一个元素和B中元素相同
- 在shell中如何判断一个变量是否为空
- shell中如何判断一个变量是否为空
- Shell脚本实现判断IP地址是否在一个ip段内代码分享
- js判断一个变量是否为数组的解决方案
- java 编写程序实现从控制台接收一个 5 位以上的整数,使用数组来判断该数字 * 是否是回文数。(例如:789987,12344321是回文数)
- 设计算法并写出代码移除字符串中重复的字符,不能使用额外的缓存空间。注意: 可以使用额外的一个或两个变量,但不允许额外再开一个数组拷贝。
- Shell脚本实现判断IP地址是否在一个ip段内代码分享
- JS 判断某变量是否为某数组中的一个值 的几种方法
- 如何在Shell中判断一个变量是否为整数
- 使用jQuery判断一个数组中是否包含某个值
- Shell脚本中判断输入变量或者参数是否为空的方法