Browse Source

Add files via upload

dufsh 5 years ago
parent
commit
eec1a57c75

+ 82 - 0
zsjk/bin/DB_conn_count.sh

@@ -0,0 +1,82 @@
+#!/usr/bin/bash
+#Whritted: dufs
+#E-mail:   fengshan.du@zznode.com
+#Date:     2017-02-28 15:50
+#
+
+
+SH_NAME=`basename $0`
+SH_HOME=$HOME/zsjk
+SH_Log=$SH_HOME/log/${0%\.sh*}.log
+
+function outlog {
+                    echo "`date '+%Y-%m-%d %T'` : " "$*" >>  $SH_Log
+                    logSize=`ls -lrt $SH_Log|awk '{print $5}'`
+                    if [ $logSize -gt 10240000 ]
+                    then
+                         cp -rp $SH_Log $SH_Log.`date '+%Y-%m-%d'`
+                         gzip $SH_Log.`date '+%Y-%m-%d'`
+                         cat /dev/null>$SH_Log
+                    fi
+                }
+
+outlog  =============================================================
+outlog  start check
+
+ip_list=$SH_HOME/conf/hostchk.conf
+
+if [ ! -f $ip_list ]
+then
+     outlog can not find $ip_list, please check !!!
+     exit 0
+fi
+
+cd $SH_HOME/bin
+
+for  line in `cat $ip_list`
+do
+        msg=""
+        msgFlg=0
+        # msgFlg: 0 no message, 1 mem ,2 cpu ,12 mem and cpu
+
+        sharppos=$(echo $line|awk '{print index($1,"#")}')
+
+        if [ $sharppos = 1 ]
+        then
+            #echo remarked line,ignore
+            continue
+        fi
+
+        outlog -------------------------------------------------------------   
+        Local_IP=`echo $line | awk -F"," '{print $1}'`
+        chk_user=`echo $line | awk -F"," '{print $2}'`
+        ssh_port=`echo $line | awk -F"," '{print $3}'`
+
+        outlog read config: Local_IP $Local_IP
+        #outlog read config: chk_user $chk_user
+        outlog read config: ssh_port $ssh_port
+
+        sshTmp=$SH_HOME/data/lsof_ps.$Local_IP.$ssh_port
+        ssh -t -p $ssh_port $chk_user@$Local_IP "/usr/sbin/lsof -i :1521|grep java;ps -fu $chk_user" >$sshTmp
+        rowNum=`cat $sshTmp|wc -l`
+        
+        if [ $rowNum -eq 0 ]
+        then
+             outlog can not get 'vmstat' from $Local_IP, please check !!!
+        else
+             lsofTmp=$SH_HOME/data/lsof.$Local_IP.$ssh_port
+        	   cat $sshTmp|egrep "^java"|awk '{print $2}'|sort|uniq -c|sort -rnk1>$lsofTmp
+        		 
+             while read line
+             do
+                 num=`echo $line |awk '{print $1}'`
+                 pid=`echo $line |awk '{print $2}'`
+                 psName=`cat $sshTmp|grep -v "^java"|grep -w $pid|grep -v grep |grep "java -D"|awk -F"java " '{print $2}'|awk '{print $1}'|sed 's/\-D/D/g'`
+                 outlog pid = $pid  dbcount = $num  psName = $psName
+             done < $lsofTmp
+             
+        fi
+        outlog -------------------------------------------------------------
+done
+outlog  =============================================================
+exit 0

+ 90 - 0
zsjk/bin/IBM_MQ_queue_depth_chk.sh

@@ -0,0 +1,90 @@
+#Whritted: dufs
+#E-mail:   fengshan.du@zznode.com
+#Date:     2017-03-04 12:00
+
+#queue depth check
+
+SH_NAME=`basename $0`
+SH_HOME=$HOME/zsjk
+SH_Log=$SH_HOME/log/${0%\.sh*}.log
+
+function outlog {
+                    echo "`date '+%Y-%m-%d %T'` : " "$*" >>  $SH_Log
+                    logSize=`ls -lrt $SH_Log|awk '{print $5}'`
+                    if [ $logSize -gt 10240000 ]
+                    then
+                         cp -rp $SH_Log $SH_Log.`date '+%Y-%m-%d'`
+                         gzip $SH_Log.`date '+%Y-%m-%d'`
+                         cat /dev/null>$SH_Log
+                    fi
+                }
+
+outlog  =============================================================
+outlog  start check
+
+sysapp="【MQ队列监测】"
+DepThrd=10000
+msg=""
+
+ip_list=$SH_HOME/conf/depthChk.conf
+
+if [ ! -f $ip_list ]
+then
+     outlog can not find $ip_list, please check !!!
+     exit 0
+fi
+
+cd $SH_HOME/
+
+for  line in `cat $ip_list`
+do
+
+        sharppos=$(echo $line|awk '{print index($1,"#")}')
+
+        if [ $sharppos = 1 ]
+        then
+            #echo remarked line,ignore
+            continue
+        fi
+
+        outlog -------------------------------------------------------------   
+        mqsc=`echo $line | awk -F"," '{print $1}'`
+        queName=`echo $line | awk -F"," '{print $2}'`
+
+        outlog read config: mqsc $mqsc
+        outlog read config: queue $queName
+        
+        Depth=`echo "DISPLAY QLOCAL($queName)"|runmqsc $mqsc|grep CURDEPTH|awk -F'[()]' '{print $2}'`
+
+        #echo $Depth
+        
+        if [ "$Depth" = "" ]
+        then
+             outlog $mqsc $queName depth not get , please check !!!
+             msg=$msg" $mqsc $queName:未获取到队列深度"
+
+        elif [ $Depth -gt $DepThrd ]
+        then
+             outlog $mqsc $queName depth is $Depth , more than $DepThrd please check !!!
+             msg="$mqsc $queName:$Depth"
+        else
+             outlog $mqsc $queName depth is $Depth , less than $DepThrd ,it is ok.
+        fi
+        outlog -------------------------------------------------------------
+done
+        
+if [ "$msg" != "" ]
+then
+        Date=`date '+%Y%m%d%H%M%S'`
+        msg=$sysapp"监测到以下队列异常:$msg,请尽快处理,巡检时间:`date '+%Y-%m-%d %T'`"
+        outlog send message $msg
+             
+        sendFile=$SH_NAME.$Date
+        echo $msg >$sendFile
+        #outlog `./sendMsg.sh $sendFile`
+        outlog `./sendMsg.sh $sendFile tnms2 tn15ms! 10.101.129.8 applications/bin/zsjk/data/`
+        rm $sendFile
+fi
+
+outlog  =============================================================
+exit 0

+ 159 - 0
zsjk/bin/cpu_mem_chk_N.sh

@@ -0,0 +1,159 @@
+#!/bin/bash 
+#Whritted: dufs
+#E-mail:   fengshan.du@zznode.com
+#Date:     2016-09-19 13:00
+
+#cpu、memory check
+
+SH_NAME=`basename $0`
+SH_HOME=$HOME/zsjk
+SH_Log=$SH_HOME/log/${0%\.sh*}.log
+
+function outlog {
+                    echo "`date '+%Y-%m-%d %T'` : " "$*" >>  $SH_Log
+                    logSize=`ls -lrt $SH_Log|awk '{print $5}'`
+                    if [ $logSize -gt 10240000 ]
+                    then
+                         cp -rp $SH_Log $SH_Log.`date '+%Y-%m-%d'`
+                         gzip $SH_Log.`date '+%Y-%m-%d'`
+                         cat /dev/null>$SH_Log
+                    fi
+                }
+
+outlog  =============================================================
+outlog  start check
+
+sysapp="【集中故障】"
+MemThrd=3
+CpuThrd=30
+
+msgTemp1=$SH_HOME/conf/sendmsg_temp_begin.sql
+msgTemp2=$SH_HOME/conf/sendmsg_temp_end.sql
+
+if [ ! -f $msgTemp1 -o ! -f $msgTemp2 ]
+then
+     outlog can not find $msgTemp1 or $$msgTemp2, please check !!!
+     exit 0
+fi
+
+ip_list=$SH_HOME/conf/hostchk.conf
+
+if [ ! -f $ip_list ]
+then
+     outlog can not find $ip_list, please check !!!
+     exit 0
+fi
+
+cd $SH_HOME/bin
+
+for  line in `cat $ip_list`
+do
+        msg=""
+        msgFlg=0
+        # msgFlg: 0 no message, 1 mem ,2 cpu ,12 mem and cpu
+
+        sharppos=$(echo $line|awk '{print index($1,"#")}')
+
+        if [ $sharppos = 1 ]
+        then
+            #echo remarked line,ignore
+            continue
+        fi
+
+        outlog -------------------------------------------------------------   
+        Local_IP=`echo $line | awk -F"," '{print $1}'`
+        chk_user=`echo $line | awk -F"," '{print $2}'`
+        ssh_port=`echo $line | awk -F"," '{print $3}'`
+
+        outlog read config: Local_IP $Local_IP
+        #outlog read config: chk_user $chk_user
+        outlog read config: ssh_port $ssh_port
+
+        sshTmp=$SH_HOME/data/vmstat.$Local_IP.$ssh_port
+        ssh -t -p $ssh_port $chk_user@$Local_IP "uname;vmstat 2 5" >$sshTmp
+        rowNum=`cat $sshTmp|wc -l`
+        
+        if [ $rowNum -eq 0 ]
+        then
+             outlog can not get 'vmstat' from $Local_IP, please check !!!
+
+             curT=`date '+%Y-%m-%d %T'`
+             msg="$sysapp获取$Local_IP:$ssh_port的vmstat信息失败"
+             msgFlg=1
+        else
+             nameOs=`cat $sshTmp|head -1`
+             nameOS=${nameOs:0:3}
+             #outlog OSname $nameOS
+             
+             if [ "$nameOS" = "Lin" ]
+             then
+                 freeMem=`cat $sshTmp|tail -1|awk '{print $4}'`
+                 idleCpu=`cat $sshTmp|tail -3|awk '{print $15}'|awk '{sum+=$1} END {print int(sum/3)}'`
+                 freeMemG=`echo "$freeMem/1024/1024"|bc`
+             elif [ "$nameOS" = "AIX" ]
+             then
+                 freeMem=`cat $sshTmp|tail -1|awk '{print $4}'`
+                 idleCpu=`cat $sshTmp|tail -3|awk '{print $16}'|awk '{sum+=$1} END {print int(sum/3)}'`
+                 freeMemG=`echo "$freeMem/1024/1024"|bc`
+             else
+                 outlog OS is not support , please contact fengshan.du@zznode.com
+                 continue
+             fi
+						             
+	     if [ $freeMemG -lt $MemThrd ]
+	     then
+                    outlog "$Local_IP:$ssh_port freeMem = $freeMemG G, < $MemThrd G, please check!!!"
+
+               #     if [ "$nameOS" = "Lin" ]
+               #     then
+               #          outlog try to clean caches .
+               #          ssh -t -p $ssh_port root@$Local_IP "echo 3 > /proc/sys/vm/drop_caches;vmstat 1 3" $SH_HOME/data/vmstat.$Local_IP_N
+               #          freeMem_N=`cat $SH_HOME/data/vmstat.$Local_IP_N|tail -1|awk '{print $4}'`
+               #          freeMemG_N=`echo "$freeMem_N/1024/1024"|bc`
+               #          outlog after clean caches $Local_IP freeMem = $freeMemG_N G .
+               #     fi
+                    msgFlg=1
+                    msg="$sysapp$Local_IP:$ssh_port空闲内存为${freeMemG}G,小于${MemThrd}G"
+	     else
+		    outlog "$Local_IP:$ssh_port freeMem = $freeMemG G, > $MemThrd G, it is OK."
+             fi
+						
+	     if [ $idleCpu -lt $CpuThrd ]
+	     then
+		    outlog "$Local_IP:$ssh_port idleCpu = $idleCpu % , < $CpuThrd %, please check!!!"
+                    if [ $msgFlg -eq 0 ]
+                    then
+                          msgFlg=2
+                          msg="$sysapp$Local_IP:$ssh_port空闲cpu为${idleCpu}%,小于${CpuThrd}%"
+                    elif [ $msgFlg -eq 1 ]
+                    then
+                          msgFlg=12
+                          msg="$msg,空闲cpu为${idleCpu}%,小于${CpuThrd}%"
+                    fi
+
+	     else
+		    outlog "$Local_IP:$ssh_port idleCpu = $idleCpu % , > $CpuThrd %, it is OK."
+	     fi
+        fi
+        
+        if [ $msgFlg -gt 0 ]
+        then
+             msg="$msg,请尽快处理,巡检时间:`date '+%Y-%m-%d_%T'`"
+             outlog send message $msg
+             
+             sendFile=cpu_mem_chk_$Local_IP.$ssh_port.sql
+             cat $msgTemp1 >$sendFile
+             echo "'"$msg"'" >>$sendFile
+             cat $msgTemp2 >>$sendFile
+
+             sed -e "s/__SHELL__/$SH_NAME/g" $sendFile >$sendFile"_N"
+             mv $sendFile"_N" $sendFile
+             outlog `./sendMsg.sh $sendFile`
+
+             rm $SH_HOME/bin/cpu_mem_chk_$Local_IP.*
+        fi
+
+        outlog -------------------------------------------------------------
+done    
+outlog  =============================================================
+exit 0

+ 125 - 0
zsjk/bin/disk_chk.sh

@@ -0,0 +1,125 @@
+#!/bin/bash 
+#Whritted: dufs
+#E-mail:   fengshan.du@zznode.com
+#Date:     2016-09-19 13:00
+
+#disk check
+
+SH_NAME=`basename $0`
+SH_HOME=$HOME/zsjk
+SH_Log=$SH_HOME/log/${0%\.sh*}.log
+
+function outlog {
+                    echo "`date '+%Y-%m-%d %T'` : " "$*" >>  $SH_Log
+                    logSize=`ls -lrt $SH_Log|awk '{print $5}'`
+                    if [ $logSize -gt 10240000 ]
+                    then
+                         cp -rp $SH_Log $SH_Log.`date '+%Y-%m-%d'`
+                         gzip $SH_Log.`date '+%Y-%m-%d'`
+                         cat /dev/null>$SH_Log
+                    fi
+                }
+
+diskThrd=85
+
+outlog  =============================================================
+outlog  start check
+
+sysapp="【集中故障】"
+msgTemp1=$SH_HOME/conf/sendmsg_temp_begin.sql
+msgTemp2=$SH_HOME/conf/sendmsg_temp_end.sql
+
+if [ ! -f $msgTemp1 -o ! -f $msgTemp2 ]
+then
+     outlog can not find $msgTemp1 or $$msgTemp2, please check !!!
+     exit 0
+fi
+
+ip_list=$SH_HOME/conf/hostchk.conf
+
+if [ ! -f $ip_list ]
+then
+     outlog can not find $ip_list, please check !!!
+     exit 0
+fi
+
+cd $SH_HOME/bin
+
+for  line in `cat $ip_list`
+do
+        msg=""
+        sharppos=$(echo $line|awk '{print index($1,"#")}')
+
+        if [ $sharppos = 1 ]
+        then
+            #echo remarked line,ignore
+            continue
+        fi
+
+        outlog -------------------------------------------------------------   
+        Local_IP=`echo $line | awk -F"," '{print $1}'`
+        chk_user=`echo $line | awk -F"," '{print $2}'`
+        ssh_port=`echo $line | awk -F"," '{print $3}'`
+
+        outlog read config: Local_IP $Local_IP
+        sshTmp=$SH_HOME/data/df_k.$Local_IP.$ssh_port
+
+        ssh -t -p $ssh_port $chk_user@$Local_IP "uname;df -k|grep -v /mnt" >$sshTmp
+        rowNum=`cat $sshTmp|wc -l`
+        
+        if [ $rowNum -eq 0 ]
+        then
+             outlog can not get 'df -k' from $Local_IP:$ssh_port, please check !!!
+             curT=`date '+%Y-%m-%d %T'`
+             msg="$sysapp$curT获取$Local_IP:$ssh_port的df -k信息失败,请检查。"
+        else
+             nameOs=`cat $sshTmp|head -1`
+             nameOS=${nameOs:0:3}
+             #outlog OSname $nameOS
+             
+             if [ "$nameOS" = "Lin" -o "$nameOS" = "AIX" ]
+             then
+               diskUsed=`cat $sshTmp|grep [0-9]%| awk '{for(i=1;i<=NF;i++)if($i~/^[0-9]+%/)print $i}'|sed 's/\%//g'|sort -nk1|tail -1`
+              #diskPath=`cat $sshTmp|grep $diskUsed%|cut -d" " -f2-|awk '{for(i=1;i<=NF;i++)if($i~/^\//)print $i}'|tr -d '\n'|sed 's/
/、/g'|sed 's/.$//g'`
+               cat $sshTmp|grep $diskUsed%|cut -d" " -f2-|awk '{for(i=1;i<=NF;i++)if($i~/^\//)print $i}'>$sshTmp.tmp
+               diskPath=`cat $sshTmp.tmp|sed 's/\n/,/g'`
+               echo $diskPath
+             else
+                  outlog OS is not support , please contact fengshan.du@zznode.com
+                  continue
+             fi
+						             
+	     if [ $diskUsed -gt $diskThrd ]
+	     then
+		    outlog "$Local_IP:$ssh_port max disk used is $diskUsed % ,path is $diskPath , > $diskThrd %, please check!!!"
+                    msg="$sysapp$Local_IP:$ssh_port磁盘空间使用率为$diskUsed %,大于$diskThrd %,,目录为$diskPath,请检查,巡检时间:`date '+%Y-%m-%d_%T'`"
+	     else
+		    outlog "$Local_IP:$ssh_port max disk used is $diskUsed % , path is $diskPath ,< $diskThrd % it is OK."
+             fi
+						
+        fi
+
+        if [ "$msg" != "" ]
+        then
+             outlog send message $msg
+
+             #---变量里有特殊符号/,直接sed替换报错
+             sendFile=disk_chk_$Local_IP.$ssh_port.sql
+             cat $msgTemp1 >$SH_HOME/bin/$sendFile
+             echo "'"$msg"'" >>$SH_HOME/bin/$sendFile
+             cat $msgTemp2 >>$SH_HOME/bin/$sendFile
+             
+             sed -e "s/__SHELL__/$SH_NAME/g" $sendFile >$sendFile"_N"
+             mv $sendFile"_N" $sendFile
+             outlog `./sendMsg.sh $sendFile`
+
+             cd $SH_HOME/pyChk/
+             python Demo_sms.pyo 13730885681 "$msg"
+
+             rm $SH_HOME/bin/$sendFile
+        fi
+						
+        outlog -------------------------------------------------------------
+done    
+outlog  =============================================================
+exit 0

+ 71 - 0
zsjk/bin/getAllCpuMeminfo.sh

@@ -0,0 +1,71 @@
+#!/bin/bash 
+#Whritted: dufs
+#E-mail:   fengshan.du@zznode.com
+#Date:     2016-09-19 13:00
+
+#get cpuinfo
+
+SH_HOME=$HOME/zsjk
+
+ip_list=$SH_HOME/conf/hostchk.conf
+
+if [ ! -f $ip_list ]
+then
+     echo can not find $ip_list, please check !!!
+     exit 0
+fi
+
+mv cpuMeminfo.txt cpuMeminfo.bak`date +'%Y%m%d%H%M%S'`
+
+echo collect time : `date +'%Y-%m-%d %T'` > cpuMeminfo.txt
+echo "">>cpuMeminfo.txt
+
+for  line in `cat $ip_list`
+do
+        sharppos=$(echo $line|awk '{print index($1,"#")}')
+
+        if [ $sharppos = 1 ]
+        then
+            #echo remarked line,ignore
+            continue
+        fi
+
+        Local_IP=`echo $line | awk -F"," '{print $1}'`
+        chk_user=`echo $line | awk -F"," '{print $2}'`
+        ssh_port=`echo $line | awk -F"," '{print $3}'`
+
+
+        sshTmp1=$SH_HOME/data/cpuinfo.$Local_IP.$ssh_port
+
+        ssh -t -p $ssh_port $chk_user@$Local_IP "uname ; cat /proc/cpuinfo|tail -27;cat /proc/meminfo|head -1" >$sshTmp1
+        
+        sed -e 's/
//g' $sshTmp1 > cpuinfo.tmp
+        mv cpuinfo.tmp $sshTmp1
+       
+        nameOs=`cat $sshTmp1|head -1`
+        nameOS=${nameOs:0:3} 
+        #echo $nameOS
+        if [ "$nameOS" != "Lin" ] 
+        then
+             continue
+        fi
+
+        cpumum=`cat $sshTmp1|grep processor|tail -1|awk -F":" '{print $2}'`
+        pronum=`echo "$cpumum+1"|bc`
+        memsize=`cat $sshTmp1|grep MemTotal|awk '{print $2,$3}'`
+
+        echo  "$Local_IP:"               >>cpuMeminfo.txt
+        echo ------------------------------------------------------- >>cpuMeminfo.txt
+        echo "processor num   : $pronum" >>cpuMeminfo.txt
+        cat $sshTmp1|grep "cpu cores"    >>cpuMeminfo.txt
+        cat $sshTmp1|grep "model name"   >>cpuMeminfo.txt
+        cat $sshTmp1|grep "cpu MHz"      >>cpuMeminfo.txt
+        cat $sshTmp1|grep "cache size"   >>cpuMeminfo.txt
+        echo ""                          >>cpuMeminfo.txt
+        cat $sshTmp1|grep MemTotal       >>cpuMeminfo.txt
+        echo ------------------------------------------------------- >>cpuMeminfo.txt
+        echo ""                          >>cpuMeminfo.txt
+        echo ""                          >>cpuMeminfo.txt
+        
+
+done    

+ 152 - 0
zsjk/bin/ip_swich_chk_N.sh

@@ -0,0 +1,152 @@
+#!/bin/bash 
+#Whritted: dufs
+#E-mail:   fengshan.du@zznode.com
+#Date:     2016-08-25 11:00
+
+#ip switch check
+
+SH_NAME=`basename $0`
+SH_HOME=$HOME/zsjk
+SH_Log=$SH_HOME/log/${0%\.sh*}.log
+
+function outlog {
+                    echo "`date '+%Y-%m-%d %T'` : " "$*" >>  $SH_Log
+                    logSize=`ls -lrt $SH_Log|awk '{print $5}'`
+                    if [ $logSize -gt 10240000 ]
+                    then
+                         cp -rp $SH_Log $SH_Log.`date '+%Y-%m-%d'`
+                         gzip $SH_Log.`date '+%Y-%m-%d'`
+                         cat /dev/null>$SH_Log
+                    fi
+                }
+
+outlog  =============================================================
+outlog  start check
+
+msgTemp=$SH_HOME/conf/sendmsg_temp.sql
+if [ ! -f $msgTemp ]
+then
+     outlog can not find $msgTemp, please check !!!
+     exit 0
+fi
+
+ip_list=$SH_HOME/conf/ip_swich_chk.conf
+if [ ! -f $ip_list ]
+then
+     outlog can not find $ip_list, please check !!!
+     exit 0
+fi
+
+cd $SH_HOME/bin
+
+for  line in `cat $ip_list`
+do
+
+        sharppos=$(echo $line|awk '{print index($1,"#")}')
+        
+        if [ $sharppos = 1 ]
+        then
+            #echo remarked line,ignore
+            continue
+        fi
+        outlog -------------------------------------------------------------   
+        Local_IP=`echo $line | awk -F"," '{print $1}'`
+        Virtu_IP=`echo $line | awk -F"," '{print $2}'`
+        chk_user=`echo $line | awk -F"," '{print $3}'`
+        ssh_port=`echo $line | awk -F"," '{print $4}'`
+
+        outlog Local_IP $Local_IP
+       #outlog read config: Virtu_IP $Virtu_IP
+       #outlog read config: chk_user $chk_user
+       #outlog read config: ssh_port $ssh_port
+
+        ssh -t -p $ssh_port $chk_user@$Local_IP "/sbin/ip add" >$SH_HOME/data/ipadd.$Local_IP
+        rowNum=`cat $SH_HOME/data/ipadd.$Local_IP|wc -l`
+        
+        if [ $rowNum -eq 0 ]
+        then
+             outlog can not get '/sbin/ip add' from $Local_IP, please check !!!
+             cat /dev/null>$SH_HOME/data/Last_ipadd.$Local_IP
+
+             curT=`date '+%Y-%m-%d %T'`
+             msg="【浮动IP切换】$curT获取$Local_IP的IP地址信息失败,请检查。"
+             sed -e "s/__MSG__/$msg/g" \
+                 -e "s/__SHELL__/$SH_NAME/g"    $msgTemp > $SH_HOME/bin/ip_swich.$Local_IP.sql
+             outlog `./sendMsg.sh ip_swich.$Local_IP.sql`
+
+             rm $SH_HOME/bin/ip_swich.$Local_IP.sql
+             continue
+        else
+             Vip=`cat $SH_HOME/data/ipadd.$Local_IP|grep "scope global secondary"|awk '{print $2}'|awk -F"/" '{print $1}'`
+             #outlog local ip : $Local_IP
+
+             outlog this flow ip : $Vip
+             #get last flow ip
+
+             if [ -f $SH_HOME/data/Last_ipadd.$Local_IP ]
+             then 
+                   Vip_last=`cat $SH_HOME/data/Last_ipadd.$Local_IP`
+             else
+                   Vip_last=""
+             fi
+    
+             outlog last flow ip : $Vip_last
+
+             Vip_chg=0
+             Vip_run=0
+
+             if [ "$Vip_last" != "$Vip" ]
+             then
+                 Vip_chg=1
+             fi
+             if [ "$Virtu_IP" = "$Vip" ]
+             then
+                 Vip_run=1
+             fi
+
+             if [ $Vip_chg -eq 0 -a $Vip_run -eq 0 ]
+             then
+                  outlog Virtu_IP $Virtu_IP not running on server $Local_IP.
+             fi
+             if [ $Vip_chg -eq 1 -a $Vip_run -eq 0 ]
+             then
+                  outlog switched !!!
+                  outlog Virtu_IP $Vip_last switch to other server from server $Local_IP.
+                  curT=`date '+%Y-%m-%d %T'`
+                  msg="【浮动IP切换】$curT监测到浮动IP $Vip_last从$Local_IP切换到了其它服务器,请检查。"
+                  oulog send message $msg
+                  #echo $msg > $SH_HOME/bin/ip_swich.$Local_IP.txt
+                  #outlog `sendMsg.sh ip_swich.$Local_IP tnms2 tn15ms! 10.101.129.8 /home/tnms2/applications/bin/zsjk/data/`
+                  
+                  sed -e "s/__MSG__/$msg/g" \
+                        -e "s/__SHELL__/$SH_NAME/g"    $msgTemp > $SH_HOME/bin/ip_swich.$Local_IP.sql
+                  outlog `./sendMsg.sh ip_swich.$Local_IP.sql`
+                  rm $SH_HOME/bin/ip_swich.$Local_IP.sql
+             fi
+             if [ $Vip_chg -eq 0 -a $Vip_run -eq 1 ]
+             then
+                  outlog Virtu_IP $Vip runing on server $Local_IP.
+             fi
+             if [ $Vip_chg -eq 1 -a $Vip_run -eq 1 ]
+             then
+                  outlog switched !!!
+                  outlog flow ip $Vip switch from other server to server $Local_IP.
+                  curT=`date '+%Y-%m-%d %T'`
+                  msg="【浮动IP切换】$curT监测到浮动IP $Vip切换到了服务器$Local_IP,请检查。"
+                  outlog send message $msg
+                  #echo $msg > $SH_HOME/bin/ip_swich.$Local_IP.txt
+                  #outlog `./sendMsg.sh ip_swich.$Local_IP tnms2 tn15ms! 10.101.129.8 /home/tnms2/applications/bin/zsjk/data/`
+
+                  sed -e "s/__MSG__/$msg/g" \
+                      -e "s/__SHELL__/$SH_NAME/g"    $msgTemp > $SH_HOME/bin/ip_swich.$Local_IP.sql
+                  outlog `./sendMsg.sh ip_swich.$Local_IP.sql`
+                  rm $SH_HOME/bin/ip_swich.$Local_IP.sql
+             fi
+             echo $Vip >$SH_HOME/data/Last_ipadd.$Local_IP
+         fi
+        outlog -------------------------------------------------------------
+
+done    
+
+outlog  =============================================================
+exit 0

+ 92 - 0
zsjk/bin/ping_chk.sh

@@ -0,0 +1,92 @@
+#!/bin/bash 
+#Whritted: dufs
+#E-mail:   fengshan.du@zznode.com
+#Date:     2016-09-19 13:00
+
+#ping check
+#  ping输出有如下两种结果,有时候会有duplicates输出
+#
+#  10 packets transmitted, 10 received, +1 duplicates, 0% packet loss, time 9001ms rtt min/avg/max/mdev = 0.432/6.303/32.608/12.369 ms
+#  10 packets transmitted, 10 received, 0% packet loss, time 9000ms rtt min/avg/max/mdev = 0.418/0.466/0.500/0.032 ms
+#
+
+SH_NAME=`basename $0`
+SH_HOME=$HOME/zsjk
+SH_Log=$SH_HOME/log/${0%\.sh*}.log
+
+function outlog {
+                    echo "`date '+%Y-%m-%d %T'` : " "$*" >>  $SH_Log
+                    logSize=`ls -lrt $SH_Log|awk '{print $5}'`
+                    if [ $logSize -gt 10240000 ]
+                    then
+                         cp -rp $SH_Log $SH_Log.`date '+%Y-%m-%d'`
+                         gzip $SH_Log.`date '+%Y-%m-%d'`
+                         cat /dev/null>$SH_Log
+                    fi
+                }
+
+outlog  =============================================================
+outlog  start check
+
+sysapp="【集中故障】"
+msgTemp=$SH_HOME/conf/sendmsg_temp.sql
+if [ ! -f $msgTemp ]
+then
+     outlog can not find $msgTemp, please check !!!
+     exit 0
+fi
+
+
+ip_list=$SH_HOME/conf/pingChk.conf
+
+if [ ! -f $ip_list ]
+then
+     outlog can not find $ip_list, please check !!!
+     exit 0
+fi
+
+cd $SH_HOME/bin
+
+for  line in `cat $ip_list`
+do
+        sharppos=$(echo $line|awk '{print index($1,"#")}')
+
+        if [ $sharppos = 1 ]
+        then
+            #echo remarked line,ignore
+            continue
+        fi
+
+        outlog -------------------------------------------------------------   
+        Local_IP=`echo $line | awk -F"," '{print $1}'`
+
+        outlog read config: Local_IP $Local_IP
+
+        ping $Local_IP -c 10 -s 1024 >$SH_HOME/data/ping.$Local_IP
+        outlog `cat $SH_HOME/data/ping.$Local_IP |tail -2`
+        dupCnt=`tail -2 $SH_HOME/data/ping.$Local_IP| head -1|grep -c duplicates`
+        if [ $dupCnt -eq 1 ]
+        then
+             dupNum=`tail -2 $SH_HOME/data/ping.$Local_IP| head -1|awk '{print $6}'||sed 's/\+//g'`
+             pkgLos=`tail -2 $SH_HOME/data/ping.$Local_IP| head -1|awk '{print $8}'|sed 's/\%//g'`
+        else
+             pkgLos=`tail -2 $SH_HOME/data/ping.$Local_IP| head -1|awk '{print $6}'|sed 's/\%//g'`
+        fi
+        
+        if [ $pkgLos -gt 0 ]
+        then
+            outlog ping $Local_IP packet loss is $pkgLos % , please check !!!  
+            curT=`date '+%Y-%m-%d %T'`
+            msg="$sysapp$curT ping $Local_IP packet loss $pkgLos %,请检查。"
+            sed -e "s/__MSG__/$msg/g" \
+                -e "s/__SHELL__/$SH_NAME/g"    $msgTemp > $SH_HOME/bin/ping_chk_$Local_IP.sql
+            outlog `./sendMsg.sh ping_chk_$Local_IP.sql`
+            cd $SH_HOME/pyChk/
+            python Demo_sms.pyo 13730885681 "$msg"
+
+            rm $SH_HOME/bin/ping_chk_$Local_IP.sql
+        fi
+        outlog -------------------------------------------------------------
+done    
+outlog  =============================================================
+exit 0

+ 140 - 0
zsjk/bin/procMemChk.sh

@@ -0,0 +1,140 @@
+#!/bin/bash 
+#Whritted: dufs
+#E-mail:   fengshan.du@zznode.com
+#Date:     2016-09-19 13:00
+
+# process memory check
+# config file : conf/procMemChk.conf  proc_Key,proc_Log,mem_Thrd
+# process running server  conf/ps_info_cur.txt  exp. 10.102.52.13_22444,DFmSocketServer DCASServer DAlarmForwordServer DSECServer DWebService DWebUIServer
+#
+
+
+SH_NAME=`basename $0`
+SH_HOME=$HOME/zsjk
+SH_Log=$SH_HOME/log/${0%\.sh*}.log
+
+function outlog {
+                    #echo $*
+                    echo "`date '+%Y-%m-%d %T'` : " "$*" >>  $SH_Log
+                    logSize=`ls -lrt $SH_Log|awk '{print $5}'`
+                    if [ $logSize -gt 10240000 ]
+                    then
+                         cp -rp $SH_Log $SH_Log.`date '+%Y-%m-%d'`
+                         gzip $SH_Log.`date '+%Y-%m-%d'`
+                         cat /dev/null>$SH_Log
+                    fi
+                }
+
+outlog  =============================================================
+outlog  start check
+
+sysapp="【集中故障】"
+
+ip_list=$SH_HOME/conf/procMemChk.conf
+
+if [ ! -f $ip_list ]
+then
+     outlog can not find $ip_list, please check !!!
+     exit 0
+fi
+
+ps_serv=$SH_HOME/conf/ps_info_cur.txt
+
+if [ ! -f $ps_serv ]
+then
+     outlog can not find $ps_serv, please check !!!
+     exit 0
+fi
+
+cd $SH_HOME/bin
+
+for  line in `cat $ip_list`
+do
+        msg=""
+        msgFlg=0
+        # msgFlg: 0 no message, 1 mem ,2 cpu ,12 mem and cpu
+
+        sharppos=$(echo $line|awk '{print index($1,"#")}')
+
+        if [ $sharppos = 1 ]
+        then
+            #echo remarked line,ignore
+            continue
+        fi
+
+        outlog -------------------------------------------------------------   
+        proc_Key=`echo $line | awk -F"," '{print $1}'`
+        proc_Log=`echo $line | awk -F"," '{print $2}'`
+        mem_Thrd=`echo $line | awk -F"," '{print $3}'`
+
+        outlog read config: proc_Key $proc_Key , proc_Log $proc_Log , mem_Thrd $mem_Thrd
+        
+        ipPorts=`grep -w $proc_Key $ps_serv|awk -F"," '{print $1}'`
+        for Line in `echo $ipPorts`
+        do
+            Local_IP=`echo $Line|awk -F"_" '{print $1}'`
+            ssh_port=`echo $Line|awk -F"_" '{print $2}'`
+            chk_user="iss"
+            outlog $proc_Key is running on $Local_IP:$ssh_port $chk_user
+            
+            sshTmp=$SH_HOME/data/procMemChk_$proc_Key.$Local_IP.$ssh_port
+            ssh -t -p $ssh_port $chk_user@$Local_IP "cd ISS_LOG;tail -200 $proc_Log|grep 'Current memory'|tail -1;tail -200 $proc_Log|grep 'Free memory'|tail -1" >$sshTmp
+            
+            rowNum=`cat $sshTmp|wc -l`
+        
+            if [ $rowNum -eq 0 ]
+            then
+                 outlog can not get $proc_Key info from $Local_IP, please check !!!
+
+                 curT=`date '+%Y-%m-%d %T'`
+                 msg="$sysapp从$Local_IP:$ssh_port未获取到 $proc_Key 的内存信息,请检查。"
+                 msgFlg=1
+            else
+                 TimeStp=`cat $sshTmp|grep 'Current memory'|tr -d '\r'|sed -s 's/
//g'|awk -F"." '{print $1}'`            
+                 usedMem=`cat $sshTmp|grep 'Current memory'|tr -d '\r'|sed -s 's/
//g'|awk -F":" '{print $4}'`
+                 isFree=`cat $sshTmp|grep 'Free memory'|tr -d '\r'|sed -s 's/^M//g'|wc -l`
+                 #echo $isFree
+                 if [ $isFree -ge 1 ]
+                 then
+                     TimeStpF=`cat $sshTmp|grep 'Free memory'|tr -d '\r'|sed -s 's/
//g'|awk -F"." '{print $1}'`            
+                     freeMem=`cat $sshTmp|grep 'Free memory'|tr -d '\r'|sed -s 's/
//g'|awk -F":" '{print $4}'`
+                 else
+                     TimeStpF=$TimeStp
+                     freeMem=0
+                 fi
+
+                 #echo $usedMem $TimeStp
+                 #echo $freeMem $TimeStpF
+                 if [ "$TimeStp" = "$TimeStpF" ]
+                 then
+                     usedMemF=`echo "$usedMem-$freeMem"|bc`
+                 fi
+                 #echo $usedMemF
+
+                 if [ $usedMemF -ge $mem_Thrd ]
+                 then
+                      outlog "$Local_IP:$ssh_port $proc_Key usedMem = $usedMem K, freeMem = $freeMem K, larger then $mem_Thrd K, please check!!!"
+                      msgFlg=1
+                      msg="$sysapp从$Local_IP:$ssh_port获取到$proc_Key的内存为${usedMem}K(日志时间:$TimeStp),大于门限${mem_Thrd}K,请检查。"
+                 else
+                      outlog "$Local_IP:$ssh_port $proc_Key usedMem = $usedMem K, freeMem = $freeMem K, less then $mem_Thrd K, it is OK."
+                 fi
+            fi
+            
+            if [ $msgFlg -gt 0 ]
+            then
+                 msg="$msg巡检时间:`date '+%Y-%m-%d %T'`"
+                 outlog send message $msg
+                 $SH_HOME/bin/zsjkAlarmIsert.sh "进程内存监测,1,$msg,10.102.52.9,zsjk/bin/procMemChk.sh"
+
+                 #send restart info to running server.
+                 echo "`date +'%Y-%m-%d %T'` usedMem = $usedMem K"  >${proc_Key}.restart
+                 scp -P$ssh_port ${proc_Key}.restart $chk_user@$Local_IP:./zsjk/restartflag/
+            fi
+             
+        done
+
+        outlog -------------------------------------------------------------
+done    
+outlog  =============================================================
+exit 0

+ 200 - 0
zsjk/bin/process_chk.sh_cur

@@ -0,0 +1,200 @@
+#!/bin/bash 
+#Whritted: dufs
+#E-mail:   fengshan.du@zznode.com
+#Date:     2016-09-19 13:00
+
+#disk check
+
+SH_NAME=`basename $0`
+SH_HOME=$HOME/zsjk
+SH_Log=$SH_HOME/log/${0%\.sh*}.log
+
+function outlog {
+                    echo "`date '+%Y-%m-%d %T'` : " "$*" >>  $SH_Log
+                    logSize=`ls -lrt $SH_Log|awk '{print $5}'`
+                    if [ $logSize -gt 10240000 ]
+                    then
+                         cp -rp $SH_Log $SH_Log.`date '+%Y-%m-%d'`
+                         gzip $SH_Log.`date '+%Y-%m-%d'`
+                         cat /dev/null>$SH_Log
+                    fi
+                }
+
+
+
+     
+
+outlog  =============================================================
+outlog  start check
+
+sysapp="【集中故障】"
+msgTemp1=$SH_HOME/conf/sendmsg_temp_begin.sql
+msgTemp2=$SH_HOME/conf/sendmsg_temp_end.sql
+
+if [ ! -f $msgTemp1 -o ! -f $msgTemp2 ]
+then
+     outlog can not find $msgTemp1 or $$msgTemp2, please check !!!
+     exit 0
+fi
+
+ip_list=$SH_HOME/conf/appchk.conf
+
+if [ ! -f $ip_list ]
+then
+     outlog can not find $ip_list, please check !!!
+     exit 0
+fi
+
+psInfo=""
+cat /dev/null > $SH_HOME/data/ps_info_cur.txt
+sess=`date +'%y%m%d%h%M'`
+
+cd $SH_HOME/bin
+
+for  line in `cat $ip_list`
+do
+        sharppos=$(echo $line|awk '{print index($1,"#")}')
+
+        if [ $sharppos = 1 ]
+        then
+            #echo remarked line,ignore
+            continue
+        fi
+
+        outlog -------------------------------------------------------------   
+        Local_IP=`echo $line | awk -F"," '{print $1}'`
+        chk_user=`echo $line | awk -F"," '{print $2}'`
+        ssh_port=`echo $line | awk -F"," '{print $3}'`
+
+        outlog read config: Local_IP $Local_IP
+        outlog read config: chk_user $chk_user
+        outlog read config: ssh_port $ssh_port
+
+        ssh -t -p $ssh_port $chk_user@$Local_IP "ps -fu $chk_user" >$SH_HOME/data/ps.$Local_IP.$ssh_port
+        rowNum=`cat $SH_HOME/data/ps.$Local_IP.$ssh_port|wc -l`
+        
+        if [ $rowNum -eq 0 ]
+        then
+             outlog can not get 'ps -fu $chk_user' from $Local_IP, please check !!!
+             
+             curT=`date '+%Y-%m-%d %T'`
+             msg="$sysapp$curT获取$Local_IP的ps -fu $chk_user信息失败,请检查。"
+             sed -e "s/__MSG__/$msg/g" \
+                 -e "s/__SHELL__/$SH_NAME/g"    $msgTemp > $SH_HOME/bin/process_chk_$Local_IP.$ssh_port.sql
+             outlog `./sendMsg.sh process_chk_$Local_IP.$ssh_port.sql`
+
+             rm $SH_HOME/bin/process_chk_$Local_IP.$ssh_port.sql
+             
+             ./zsjkAlarmIsert.sh "进程监控,1,$msg,10.102.52.9,zsjk/bin/process_chk.sh_cur"
+
+             continue
+        else
+             psCur=`cat $SH_HOME/data/ps.$Local_IP.$ssh_port|grep "java -D"|awk -F"java " '{print $2}'|awk '{print $1}'|sed 's/\-D/D/g'`
+             psInfo=$psCur" "$psInfo
+             outlog running process : $psCur
+             echo $Local_IP"_"$ssh_port,$psCur >> $SH_HOME/data/ps_info_cur.txt
+        fi
+						
+        outlog -------------------------------------------------------------
+done    
+
+#outlog all running process :  $psInfo
+cat /dev/null >$SH_HOME/data/allps_cur.list
+for i in `echo $psInfo`
+do
+    echo $i >>$SH_HOME/data/allps_cur.list
+done
+
+ps_conf=$SH_HOME/conf/process_cur.conf
+
+# check 1 : 进程重复
+cat $SH_HOME/data/allps_cur.list|sort |uniq -c|awk '{if($1>1) print$2","$1}' >$SH_HOME/data/psRept_cur.list
+if [ `cat $SH_HOME/data/psRept_cur.list|wc -l` -gt 0 ]
+then
+     for j in `cat $SH_HOME/data/psRept_cur.list`
+     do  
+         psName=`echo $j|awk -F"," '{print $1}'`
+         psNum=`echo $j|awk -F"," '{print $2}'`
+         isChk=`cat $ps_conf|egrep -v "^#"|grep -wc "$psName"`
+         if [ $isChk -eq 0 ]
+         then
+              continue
+         fi
+         psPos=`cat $SH_HOME/data/ps_info_cur.txt |grep -w "$psName"|awk -F"," '{print $1}'`
+         outlog repeat process : $psName , repeat times : $psNum , running on $psPos
+         curT=`date '+%Y-%m-%d %T'`
+         msg="$sysapp$curT监测到$psName进程运行重复$psNum次,该进程同时运行在"`echo $psPos`",请检查。"
+         outlog send mesge : $msg
+         
+         cat $msgTemp1 >$SH_HOME/bin/process_chk_rep_cur.sql
+         echo "'"$msg"'" >>$SH_HOME/bin/process_chk_rep_cur.sql
+         cat $msgTemp2 >>$SH_HOME/bin/process_chk_rep_cur.sql
+
+         outlog `./sendMsg.sh process_chk_rep_cur.sql`
+
+         rm $SH_HOME/bin/process_chk_rep_cur.sql
+         
+         ./zsjkAlarmIsert.sh "进程监控,1,$msg,10.102.52.9,zsjk/bin/process_chk.sh_cur"
+
+     done
+fi
+
+
+# check 2 : 进程缺少
+
+
+if [ ! -f $ps_conf ]
+then
+     outlog can not find $ps_conf , please check !!!
+     exit 0
+fi
+
+psNoR=""
+while read line
+do
+     sharppos=$(echo $line|awk '{print index($1,"#")}')
+        
+     if [ $sharppos = 1 ]
+     then
+          #echo remarked line,ignore
+          continue
+     fi
+   
+     proKey=`echo $line | awk -F":" '{print $2}'`
+     proNum=`cat $SH_HOME/data/ps_info_cur.txt| grep -wc "$proKey"` 
+     if [ $proNum -eq 0 ]
+     then 
+          psNoR=$proKey" "$psNoR
+     else
+          continue
+     fi
+done < $ps_conf
+
+if [ "$psNoR" = "" ]
+then
+     outlog all process is running . it is OK. 
+else
+     outlog find not running process : $psNoR please check !!
+     curT=`date '+%Y-%m-%d %T'`
+     msg="$sysapp$curT监测到以下进程未运行:$psNoR请检查。"
+     outlog send mesge : $msg
+
+     cat $msgTemp1 >$SH_HOME/bin/process_chk_notrun_cur.sql
+     echo "'"$msg"'" >>$SH_HOME/bin/process_chk_notrun_cur.sql
+     cat $msgTemp2 >>$SH_HOME/bin/process_chk_notrun_cur.sql
+     outlog `./sendMsg.sh process_chk_notrun_cur.sql`
+
+     cd $SH_HOME/pyChk/
+     python Demo_sms.pyo 13730885681 "$msg"
+      
+     rm $SH_HOME/bin/process_chk_notrun_cur.sql
+     
+     $SH_HOME/bin/zsjkAlarmIsert.sh "进程监控,1,$msg,10.102.52.9,zsjk/bin/process_chk.sh_cur"
+
+fi
+
+cp $SH_HOME/data/ps_info_cur.txt $SH_HOME/conf/ps_info_cur.txt
+#rm $SH_HOME/data/ps.*
+
+outlog  =============================================================
+exit 0

+ 78 - 0
zsjk/bin/remote_cmd.sh

@@ -0,0 +1,78 @@
+#!/bin/bash 
+#Whritted: dufs
+#E-mail:   fengshan.du@zznode.com
+#Date:     2016-09-19 13:00
+
+# excute remote cmd
+
+
+SH_NAME=`basename $0`
+SH_HOME=$HOME/zsjk
+SH_Log=$SH_HOME/log/${0%\.sh*}.log
+
+
+function outlog {
+                    echo $*
+                    echo "`date '+%Y-%m-%d %T'` : " "$*" >>  $SH_Log
+                    logSize=`ls -lrt $SH_Log|awk '{print $5}'`
+                    if [ $logSize -gt 10240000 ]
+                    then
+                         cp -rp $SH_Log $SH_Log.`date '+%Y-%m-%d'`
+                         gzip $SH_Log.`date '+%Y-%m-%d'`
+                         cat /dev/null>$SH_Log
+                    fi
+                }
+
+outlog  =============================================================
+
+if [ $# -ge 1 ]
+then
+    cmd=$1
+else
+    outlog need cmd, usage $0 cmd
+    exit -1
+fi
+
+outlog  start excute cmd $cmd
+
+
+ip_list=$SH_HOME/conf/hostchk.conf
+
+if [ ! -f $ip_list ]
+then
+     outlog can not find $ip_list, please check !!!
+     exit 0
+fi
+
+cd $SH_HOME/bin
+
+for  line in `cat $ip_list`
+do
+
+        sharppos=$(echo $line|awk '{print index($1,"#")}')
+
+        if [ $sharppos = 1 ]
+        then
+            #echo remarked line,ignore
+            continue
+        fi
+
+        outlog -------------------------------------------------------------   
+        Local_IP=`echo $line | awk -F"," '{print $1}'`
+        chk_user=`echo $line | awk -F"," '{print $2}'`
+        ssh_port=`echo $line | awk -F"," '{print $3}'`
+
+        outlog read config: Local_IP $Local_IP ssh_port $ssh_port chk_user $chk_user
+        
+        sshTmp=$SH_HOME/data/$SH_NAME.$Local_IP.$ssh_port
+
+        ssh -t -p $ssh_port $chk_user@$Local_IP "$cmd">$sshTmp
+        
+        while read line
+        do
+            outlog $line
+        done < $sshTmp
+
+done    
+outlog  =============================================================
+exit 0

+ 73 - 0
zsjk/bin/sendMsg.sh

@@ -0,0 +1,73 @@
+#!/bin/bash
+
+sendMsg()
+{
+
+#µÚÒ»¸ö²ÎÊýÊÇÎļþÃû
+
+IP=10.101.211.4
+USERNAME=oracle
+PASSWORD=Zog,Ge*180Kg
+RemPath=/backup/zsjk/data
+
+if [ $# -lt 1 ]
+then 
+     echo failed .
+     usage
+fi 
+
+if [ ! -f $1 ]
+then
+     echo  failed . can not find file $1,please check !!!
+     exit 1
+fi
+
+sedFile=$1
+
+if [ $# -eq 5 ]
+then
+     USERNAME=$2
+     PASSWORD=$3
+     IP=$4
+     RemPath=$5
+fi
+
+sess=`date '+%Y%m%d%H%M'`
+
+ftp -v -n<< EOF  >/dev/null
+open $IP
+user $USERNAME $PASSWORD
+binary
+prompt off
+cd $RemPath
+put $sedFile
+ls -lrt ftpFile.list.$sess
+close
+bye
+
+EOF
+
+FileNum=`cat ftpFile.list.$sess|grep $sedFile|wc -l`
+rm -rf ftpFile.list.$sess
+
+if [ $FileNum -eq 0 ]
+then
+     echo ftp to $IP failed .
+else
+     echo ftp to $IP successed .
+fi
+
+}
+
+usage()
+{
+   echo "Usage: `basename $0` filename [ user passwd ip path ]"
+   echo ""
+   echo "Options:"
+   echo "   filename : sql file [ default 10.101.211.4 /backup/zsjk/data ]"
+   echo "       exp . $0 wsmonitor.log"
+   echo "       exp . $0 wsmonitor.log ftps Zhjk_123 10.101.58.42 /export/home/ftps/pf/"
+   exit 0
+}
+
+sendMsg $*

+ 81 - 0
zsjk/bin/sftpTool.sh

@@ -0,0 +1,81 @@
+#!/bin/bash
+
+usage()
+{
+   echo "Usage: `basename $0` hostip user passwd port list|put|get remotePath localPath file "
+   echo "exp :  `basename $0`  hostip user passwd port list remotePath [file]"
+   echo "exp :  `basename $0`  hostip user passwd port put remotePath localPath file"
+   echo "exp :  `basename $0`  hostip user passwd port get remotePath localPath file"
+   exit 0
+}
+
+argvNum=6
+
+if [ $# -ge $argvNum ]
+then
+    hostip=$1
+    user=$2
+    passwd=$3
+    port=$4
+    RemotePath=$6
+    #localPath=$7
+    #file=$8
+
+    case $5 in
+           "list")      oper="ls -lrt"                    ;;
+           "put"|"get") oper=$5                           ;;
+           *|\?)        usage                             ;;
+    esac
+    
+    if [ $# -eq 6 -a "$oper" = "ls -lrt" ]
+    then
+         continue
+    elif [ $# -ge 7 -a "$oper" = "ls -lrt" ]
+    then 
+         file=$7
+         echo $file
+    elif [ $# -ge 8 -a  "$oper" != "ls -lrt" ]
+    then
+         file=$8
+         localPath=$7
+    else
+         usage
+    fi
+
+    echo hostip = $hostip
+    echo user = $user
+    echo passwd = $passwd
+    echo port = $port
+    echo RemotePath = $RemotePath
+    echo localPath = $localPath
+    echo file = $file
+    echo oper = $oper
+else
+     echo argv less then $argvNum 
+     usage
+     exit -1
+fi
+
+
+/usr/bin/expect  <<EOF
+set timeout 65 
+spawn sftp -oPort=$port $user@$hostip 
+expect {  
+  "(yes/no)?" {send "yes\r"; expect_continue}  
+  "$user@$hostip's password: " {send "$passwd\r"}  
+  "ssh: connect to host $hostip port $port: Connection refused" exit
+  "Couldn't read packet: Connection reset by peer" exit
+  "Password:" {send "$passwd\r"}
+  "sftp>" {send \r}
+}  
+
+expect {
+   "$user@$hostip's password: " exit
+   "sftp>" {send "cd $RemotePath\r" }
+}
+
+expect "sftp>" {send "lcd $localPath \r"}
+expect "sftp>" {send "$oper $file \r"}
+expect "sftp>" {send "bye \r"}
+expect eof exit
+EOF

+ 55 - 0
zsjk/bin/sshTool.sh

@@ -0,0 +1,55 @@
+#!/bin/bash
+
+usage()
+{
+   echo "Usage: `basename $0` hostip user passwd port command "
+   exit 0
+}
+
+argvNum=5
+
+if [ $# -ge $argvNum ]
+then
+    hostip=$1
+    port=$2
+    user=$3
+    passwd=$4
+    command=$5
+
+    echo hostip = $hostip
+    echo user = $user
+    echo passwd = $passwd
+    echo port = $port
+    echo command= $command
+else
+     echo argv less then $argvNum
+     usage
+     exit -1
+fi
+
+
+/usr/bin/expect  <<EOF
+set timeout 65
+spawn ssh -t -p $port $user@$hostip
+expect {
+  "(yes/no)?" {send "yes\r"; expect_continue}
+  "$user@$hostip's password: " {send "$passwd\r"}
+  "ssh: connect to host $hostip port $port: Connection refused" exit
+  "Couldn't read packet: Connection reset by peer" exit
+  "bash*" {send "ls -lrt 3\r"}
+  "$hostip*]"    {send "ls -lrt 3\r"}
+}
+
+expect {
+   "$user@$hostip's password: " exit
+   "*bash*" {send "$command \r" }
+   "$hostip*]" {send "$command \r" }
+}
+expect {
+   "*bash*" exit
+   "$hostip*]"     exit
+}
+
+expect eof exit
+
+EOF

+ 118 - 0
zsjk/bin/ulimit_n_chk.sh

@@ -0,0 +1,118 @@
+#!/usr/bin/bash
+#Whritted: dufs
+#E-mail:   fengshan.du@zznode.com
+#Date:     2018-02-24 15:50
+#
+
+
+SH_NAME=`basename $0`
+SH_HOME=$HOME/zsjk
+SH_Log=$SH_HOME/log/${0%\.sh*}.log
+
+function outlog {
+                    echo "`date '+%Y-%m-%d %T'` : " "$*" >>  $SH_Log
+                    logSize=`ls -lrt $SH_Log|awk '{print $5}'`
+                    if [ $logSize -gt 10240000 ]
+                    then
+                         cp -rp $SH_Log $SH_Log.`date '+%Y-%m-%d'`
+                         gzip $SH_Log.`date '+%Y-%m-%d'`
+                         cat /dev/null>$SH_Log
+                    fi
+                }
+
+outlog  =============================================================
+outlog  start check
+
+sysapp="【集中故障】"
+
+ip_list=$SH_HOME/conf/hostchk.conf
+
+if [ ! -f $ip_list ]
+then
+     outlog can not find $ip_list, please check !!!
+     exit 0
+fi
+
+cd $SH_HOME/bin
+
+for  line in `cat $ip_list`
+do
+        msg=""
+        msgFlg=0
+        # msgFlg: 0 no message, 1 mem ,2 cpu ,12 mem and cpu
+
+        sharppos=$(echo $line|awk '{print index($1,"#")}')
+
+        if [ $sharppos = 1 ]
+        then
+            #echo remarked line,ignore
+            continue
+        fi
+
+        outlog -------------------------------------------------------------   
+        Local_IP=`echo $line | awk -F"," '{print $1}'`
+        chk_user=`echo $line | awk -F"," '{print $2}'`
+        ssh_port=`echo $line | awk -F"," '{print $3}'`
+
+        outlog read config: Local_IP $Local_IP ssh_port $ssh_port
+        #outlog read config: chk_user $chk_user
+        #outlog read config: ssh_port $ssh_port
+
+        sshTmp=$SH_HOME/data/ulimit_lsof.$Local_IP.$ssh_port
+        ssh -t -p $ssh_port $chk_user@$Local_IP "ulimit -n;/usr/sbin/lsof" >$sshTmp
+        rowNum=`cat $sshTmp|wc -l`
+        
+        if [ $rowNum -eq 0 ]
+        then
+             outlog can not get 'ulimit' from $Local_IP, please check !!!
+             msgFlg=1
+             msg="$sysapp$curT获取$Local_IP的ulimit_lsof信息失败"
+
+        else
+             lsofTmp=$SH_HOME/data/ulimit_lsof_ps.$Local_IP.$ssh_port
+             cat $sshTmp|grep -v 'open files'|sort -rnk 2|awk '{print $1,$2,$3}'|uniq -c|sort -rnk 1|head>$lsofTmp
+
+             ulimit_thrd=1000        	   
+             ulimit_n=`cat $sshTmp|head -1|awk '{print $1}'|sed -e 's/
//g'|tr -d '\n'`
+             #echo $ulimit_n
+             unum=`cat $sshTmp|head -1|grep unlimited|wc -l`
+             if [ $unum -eq 1 ]
+             then
+                 ulimit_n="unlimited"
+             else
+                 if [ $ulimit_thrd -gt $ulimit_n ]
+                 then 
+                     ulimit_thrd=$ulimit_n
+                 fi
+             fi
+        	  
+             outlog $Local_IP:ssh_port $chk_user max open files is $ulimit_n.
+        		 
+             while read line
+             do
+                 num=`echo $line |awk '{print $1}'`
+                 pkey=`echo $line |awk '{print $2}'`
+                 pid=`echo $line |awk '{print $3}'`
+                 puser=`echo $line |awk '{print $4}'`
+
+                 outlog pid = $pid  count = $num  user = $puser  key = $pkey
+                 if [ $num -ge $ulimit_thrd ]
+                 then
+                     outlog pid = $pid  count = $num  user = $puser  key = $pkey  open files more then $ulimit_thrd, please check !!!
+                     msgFlg=1
+                     msg=$msg" pid=$pid open files=$num user=$puser key=$pkey"
+                 fi
+             done < $lsofTmp
+             
+        fi
+        
+        if [ $msgFlg -eq 1 ]
+        then
+            msg="$sysapp$Local_IP:$ssh_port 打开文件数异常,$chk_user用户进程打开文件数量上限为$ulimit_n:"$msg",请尽快处理,巡检时间:`date '+%Y-%m-%d %T'`"
+            $SH_HOME/bin/zsjkAlarmIsert.sh "进程监控,2,$msg,10.102.52.9,zsjk/bin/ulimit_n_chk.sh"
+        fi
+        
+        outlog -------------------------------------------------------------
+done
+outlog  =============================================================
+exit 0

+ 63 - 0
zsjk/bin/version_rsync.sh

@@ -0,0 +1,63 @@
+#!/bin/bash 
+#Whritted: dufs
+#E-mail:   fengshan.du@zznode.com
+#Date:     2016-10-18 14:00
+
+#vension rsyn
+
+SH_NAME=`basename $0`
+SH_HOME=$HOME/zsjk
+SH_Log=$SH_HOME/log/${0%\.sh*}.log
+
+function outlog {
+                    echo "`date '+%Y-%m-%d %T'` : " "$*" >>  $SH_Log
+                    logSize=`ls -lrt $SH_Log|awk '{print $5}'`
+                    if [ $logSize -gt 10240000 ]
+                    then
+                         cp -rp $SH_Log $SH_Log.`date '+%Y-%m-%d'`
+                         gzip $SH_Log.`date '+%Y-%m-%d'`
+                         cat /dev/null>$SH_Log
+                    fi
+                }
+
+outlog  =============================================================
+outlog  start sync
+
+ip_list=$SH_HOME/conf/version_rsync.conf
+
+if [ ! -f $ip_list ]
+then
+     outlog can not find $ip_list, please check !!!
+     exit 0
+fi
+
+sess=`date +'%y%m%d%h%M'`
+
+cd $SH_HOME/bin
+
+for  line in `cat $ip_list`
+do
+        sharppos=$(echo $line|awk '{print index($1,"#")}')
+
+        if [ $sharppos = 1 ]
+        then
+            #echo remarked line,ignore
+            continue
+        fi
+
+        outlog -------------------------------------------------------------   
+        Local_IP=`echo $line | awk -F"," '{print $1}'`
+        chk_user=`echo $line | awk -F"," '{print $2}'`
+        ssh_port=`echo $line | awk -F"," '{print $3}'`
+
+        outlog read config: Local_IP $Local_IP
+        #outlog read config: chk_user $chk_user
+        #outlog read config: ssh_port $ssh_port
+
+        remote_cmd="cd /home/iss/rsync_client;./rsyncd_52.10.sh"
+        ssh -t -p $ssh_port $chk_user@$Local_IP "$remote_cmd" >$SH_HOME/data/version_rsync.$Local_IP
+        
+        outlog -------------------------------------------------------------
+done    
+
+outlog  =============================================================

+ 23 - 0
zsjk/bin/zsjkAlarmIsert.sh

@@ -0,0 +1,23 @@
+#!/bin/bash
+
+function zsjkAlarmIsert()
+{
+		if [ $# -lt 1 ]
+		then 
+		     echo failed .
+		     usage
+		fi 
+
+		insertSql="insert into zsjk_alarm(alarm_id,alarm_type,alarm_level,alarm_text,monitor_server,monitor_task) values (zsjk_alarm_id_seq.nextval,:x1,:x2,:x3,:x4,:x5)"
+		insertArg="$*"
+		cd $HOME/zsjk/pyChk/
+		python2.7 execInsertSql.py "$insertSql" "$insertArg"
+}
+
+usage()
+{
+   echo "Usage: `basename $0` argList"
+   exit 0
+}
+
+zsjkAlarmIsert $*

+ 11 - 0
zsjk/bin/zsjk_alarm_chk.sh

@@ -0,0 +1,11 @@
+#!/bin/bash
+#Whritted: dufs
+#E-mail:   fengshan.du@zznode.com
+#Date:     2017-10-27 12:00
+
+export LANG=en_US.UTF-8
+
+SH_NAME=`basename $0`
+SH_HOME=$HOME/zsjk
+
+$SH_HOME/bin/zsjkAlarmIsert.sh "短信接口定期检测,3,【集中故障】【短信接口定期检测】0、8、12、16、20点收到此短信说明接口正常,巡检时间:`date '+%Y-%m-%d %T'`。,10.102.52.9,zsjk/bin/zsjk_alarm_test.sh"

+ 60 - 0
zsjk/bin/zsjk_alarm_ins.sh

@@ -0,0 +1,60 @@
+#!/bin/bash
+#Whritted: dufs
+#E-mail:   fengshan.du@zznode.com
+#Date:     2017-10-24 12:00
+
+SH_NAME=`basename $0`
+SH_HOME=$HOME/zsjk
+SH_Log=$SH_HOME/log/${0%\.sh*}.log
+
+function outlog {
+                    echo "`date '+%Y-%m-%d %T'` : " "$*" >>  $SH_Log
+                    logSize=`ls -lrt $SH_Log|awk '{print $5}'`
+                    if [ $logSize -gt 10240000 ]
+                    then
+                         cp -rp $SH_Log $SH_Log.`date '+%Y-%m-%d'`
+                         gzip $SH_Log.`date '+%Y-%m-%d'`
+                         cat /dev/null>$SH_Log
+                    fi
+                }
+
+outlog  =============================================================
+outlog  start check
+
+fileConf=$SH_HOME/conf/zsjkSendFile.conf
+if [ ! -f $fileConf ]
+then
+     outlog can not find $fileConf, please check !!!
+     exit -1
+fi
+
+cd  $SH_HOME/bin/SendMsgData
+num=`ls -lrt |grep txt|wc -l`
+if [ $num -gt 0 ]
+then
+  for file in `ls *.txt`
+  do
+     outlog get new $file
+     sendMsg=`cat $file`
+
+     ifConf=`cat $fileConf|grep -w $file|wc -l`
+     if [ $ifConf -eq 0 ]
+     then
+          outlog not get config info for $file,use null
+          alarm_type='noConfig'
+          alarm_level=4
+          monitor_server='noConfig'
+          monitor_task='noConfig'
+     else
+          alarm_type=`cat $fileConf|grep -w $file|awk -F"," '{print $2}'`
+          alarm_level=`cat $fileConf|grep -w $file|awk -F"," '{print $3}'`
+          monitor_server=`cat $fileConf|grep -w $file|awk -F"," '{print $4}'`
+          monitor_task=`cat $fileConf|grep -w $file|awk -F"," '{print $5}'`
+     fi
+     
+     $HOME/zsjk/bin/zsjkAlarmIsert.sh "$alarm_type,$alarm_level,$sendMsg,$monitor_server,$monitor_task"
+
+     rm $file
+  done
+fi
+