shell脚本

1.免密码登陆脚本 sshFreeLogin.sh

集群服务器间相互访问:

首先有一个ip列表:

ip.list:

192.168.2.240
192.168.2.241
192.168.2.242

sshFreeLogin.sh:

#!/bin/bash
  
#author:  chongyuanHuang
#blog:               http://blog.sina.com.cn/huangchongyuan    
#QQ group:      191321336
#E-mail:   874450476@qq.com
  
function Echo() {
         parameter=$1 
         name=$2
         if [ $1 -ne 1 ]; then
                 echo "Usage:  $2  ip.list"
                 echo "        please input ip.list for freelogin and password next"
                 exit 1
         fi      
}
  
function LocalSsh() {
         remote=$1
         echo "------------------------------------------------------------"
         echo "Begin to set Local-Remote free login!"
         ssh-keygen -t rsa -P ''
         scp /root/.ssh/id_rsa.pub  $1:/root/id_rsa.pub
         ssh $1 'cat /root/id_rsa.pub >> /root/.ssh/authorized_keys'
         ssh  $1 'chmod 600  /root/.ssh/authorized_keys'
         echo "Local-Remote free login set Ok!"
         echo "------------------------------------------------------------"
}
  
if [ $# -eq 1 ]; then
         num=`awk 'END{print NR}' $1`
         echo 'Set free login ip.list:'
  
         for ((i=1;i<=$num;i++)); do
                   ip=`cat $1 | sed -n ''$i'p'`
                   echo $ip
                   LocalSsh $ip
         done
else
         Echo $# $0
fi

2.optZk.sh

zk集群操作脚本,配合免登陆设置,在一台机器上进行zk集群的启动,停止及查看状态等操作。

optZk.sh脚本:

#!/bin/bash
  
#author:  chongyuanHuang
#blog:               http://blog.sina.com.cn/huangchongyuan    
#QQ group:      191321336
#E-mail:   874450476@qq.com
  
function Echo() {
         parameter=$1 
         name=$2
         if [ $parameter -ne 2 ]; then
                 echo "Usage:  $name ip.list  start/stop/status"
                 echo "        please input ip.list opt"
                 exit 1
         fi      
}
  
function optZk() {
         ip=$1
         opt=$2     
         echo "------------------------------------------------------------"
         echo "Begin to '$opt' '$ip' ZK:"
         ssh $1 '/usr/local/zookeeper/bin/zkServer.sh '$opt''
         echo "------------------------------------------------------------"
}
  
if [ $# -eq 2 ]; then
         num=`awk 'END{print NR}' $1`
  
         for ((i=1;i<=$num;i++)); do
                   ip=`cat $1 | sed -n ''$i'p'`
                   echo $ip
                   optZk $ip $2
         done
else
         Echo $# $0
fi

3、nimbus监控,一旦nimbus挂掉就重启,并把日志写到log里。

monitorNimbus.sh:

#!/bin/bash

function Init() {
         date=`date +%Y%m%d%H%M%S`
         echo ''$date': Begin monitor nimbus.' > monitorNimbus.log
}
  
function MonitorNimbus() {
         for ((;;)); do
                   num=`ps aux | grep nimbus | grep -v grep | wc -l`
                   if [ $num -eq 0 ]; then
                            date1=`date +%Y%m%d%H%M%S`
                            echo ''$date1': nimbus is down, and restarting!' >> monitorNimbus.log
                            storm nimbus&
                   fi
                   sleep 60
         done
          
}
  
Init
MonitorNimbus
exit 1

 

posted @ 2018-04-13 10:04  kwz  Views(269)  Comments(0Edit  收藏  举报