Linux远程执行hostname命令,监控服务器是否被篡改

来源:互联网 发布:如何解除单位网络权限 编辑:程序博客网 时间:2024/05/22 11:31

nagios通过远程执行hostname命令,就可以判断服务器是否最近被重新非法安装。

在编写过程遇到一个小麻烦,输入的比较的hostname和其输出的hostname,输出结果一致,但是脚本输出就判断不同。后来加入测试字符串长度代码,知道是命令输出的结果,有空格。所以要加入处理,去掉多余空格,再比较关键字。这点需要大家注意。


代码如下:

 #!/bin/bash  2   3 #ssh_remoteHostname  4 #History:  5 #   by xzy 2017/04/18  6   7 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin  8 export PATH  9 OK=0 10 WARNING=1 11 CRITICAL=2 12 UNKNOWN=3 13  14  15 usage() 16 { 17     printf "function:\n 18            CH_ComputerRoomEnviroment file\n 19            [host IP ] -H [Usename] -U ... \n 20            Usage Option:\n 21            -H:   host's web IP\n 22            -U:   Username\n 23            -P:   Password\n 24            -C:   Command\n 25            -k:   keyword\n" 26     exit $UNKNOWN 27 }   48 while getopts :H:U:P:C:k:h Parm 49 do 50     case $Parm in 51        H)IP=$OPTARG 52          ;; 53        U)UserName=$OPTARG 54          ;; 55        P)PassWord=$OPTARG 56          ;; 57        C)WarnValue=$OPTARG 58          ;; 59        k)CriticalValue=$OPTARG 60          ;; 61        h | ?) 62          usage 63          ;; 64     esac 65 done 66  67  68  69  70 hostname=`/usr/lib/nagios/plugins/ssh2.exp $IP $UserName $PassWord $WarnValue | grep "$CriticalValue" ` 79  80 hostname1=`echo $hostname | sed s/[[:space:]]//g` 81  82 #echo $hostname1 83 #echo $CriticalValue 84 #echo ${#CriticalValue} 85 #echo ${#hostname1} 86  87 #if [ "$hostname" != "$CriticalValue" ];then 88 #    echo 'Critical!Hostname is not normal!Hostname:'$hostname 89 #    exit $CRITICAL 90 #fi 91  92  93  94  95 if [ "$hostname1"  = "$CriticalValue" ]; then 96  97       echo 'OK!Hostname is normal!Hostname:'$hostname 98       exit $OK 99 else100       echo 'Critical!Hostname is not normal!Hostname:'$hostname101       exit $CRITICAL102 103 fi


0 0