最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux下實現(xiàn)SNMP一鍵安裝的Shell腳本

 更新時間:2014年07月05日 15:43:08   投稿:shichen2014  
這篇文章主要介紹了Linux下實現(xiàn)SNMP一鍵安裝的Shell腳本,非常實用,需要的朋友可以參考下

Net-SNMP是一個免費的、開放源碼的SNMP實現(xiàn),以前稱為UCD-SNMP。SNMP 很多都用其安裝之后,作為監(jiān)控寶和阿里云的系統(tǒng)信息監(jiān)控使用。下面就來分享linux下實現(xiàn)SNMP一鍵安裝的shell腳本:

#!/usr/bin/env bash
 export LC_ALL=C
 if [ "$(id -u)" != "0" ]
 then
  echo "This script. must be run as root" 1>&2
  exit 1
 fi
####check if gcc perl perl-devel(centos) or libperl-dev(ubuntu) exists,  
  APT_CMD=`whereis apt-get|awk '{print $2}'`
  YUM_CMD=`whereis yum|awk '{print $2}'`
  if [ "$APT_CMD"x != ""x ]
  then
    echo "$APT_CMD"
    cmd=`dpkg -l|grep gcc`
    if [ "$cmd"x = ""x ]
    then
      apt-get install -y gcc 
    fi
    cmd=`dpkg -l|grep perl`
    if [ "$cmd"x = ""x ]
    then
      apt-get install -y perl 
    fi
    cmd=`dpkg -l|grep "libperl-dev"`
    if [ "$cmd"x = ""x ]
    then
      apt-get install -y libperl-dev 
    fi
  elif [ "$YUM_CMD"x != ""x ]
  then
   echo $YUM_CMD
   cmd=`rpm -q gcc|grep -v "not installed"`
   if [ "$cmd"x = ""x ]
   then
     yum install gcc -y 1>/dev/null 2>&1
   fi
   cmd=`rpm -q perl|grep -v "not installed"`
   if [ "$cmd"x = ""x ]
   then
     yum install -y perl 1>/dev/null 2>&1
   fi
   cmd=`rpm -q perl-devel|grep -v "not installed"`
   if [ "$cmd"x = ""x ]
   then
     yum install -y perl-devel 1>/devel/null 2>&1
   fi
  else
   echo "your release have no yum or apt-get"
  fi
 function Usage()
 {
    echo "用法如下:(注意:2c版本密碼必須大于6位,3版本密碼必須大于8位)";
    echo ""
    echo "  $0 -v 版本號(2代表2C,3代表版本3) -u 用戶名 -p 密碼";
    echo "  $0 -v [2|3] -u username -p password";
    echo "";
    exit 0;
 }
 if [ $# -lt 1 ]
 then
   echo "請輸入?yún)?shù)"
   Usage
 fi
#####get parameters
  version=0
  username=""
  password=""
  while getopts ":v:u:p:" opt;
  do
    case $opt in
    v)
      version=$OPTARG
      if [[ ${OPTARG:0:1} = "-" ]]
      then
        echo ""
        echo "-v need argument"
        echo ""
        Usage
      fi
    ;;
    u)
      username=$OPTARG
      if [[ ${OPTARG:0:1} = "-" ]]
      then
        echo ""
        echo "-u need argument"
        echo ""
        Usage
      fi
    ;;
    p)
      password=$OPTARG
      if [[ ${OPTARG:0:1} = "-" ]]
      then
        echo ""
        echo "-p need argument"
        echo ""
        Usage
      fi
    ;;
    :)
      Usage
    ;;
    ?) 
      paralist=-1;
      Usage
    ;;
    esac
  done  
###check version number, must be 2 or 3
 if [ $version -ne "3" -a $version -ne "2" ]
 then
  Usage
  exit 3
 fi
 if [ $version -eq "3" -a "$username"x = ""x ]
 then
   echo "版本3必須要輸入用戶名"
   Usage
 fi
###check password length, version 3 big then 8, version 2 big then 6
 if [ "$version" -eq "3" ] 
 then
   if [ ${#password} -lt "8" ]
   then
     echo ""
     echo "Your passwords must greater than 8 bytes" 1>&2
     echo ""
     Usage
   fi
 else     ########### version = 2
   if [ ${#password} -lt "6" ]
   then
     echo ""
     echo "Your passwords must greater than 6 bytes" 1>&2
     echo ""
     Usage
   fi
 fi
  wget http://download.cloud.#/yjk/net-snmp.tar.gz
  tar zxvf net-snmp.tar.gz
  cd net-snmp-5.7.2
  ./configure --prefix=/usr/local/snmp --with-mib-modules=ucd-snmp/diskio 
-enable-mfd-rewrites --with-default-snmp-version="$version" --with-sys-contact="@@no.where" 
--with-sys-location="Unknown" --with-logfile="/var/log/snmpd.log" 
--with-persistent-directory="/var/net-snmp"
  make
  make install
  case $version in
   2)
   cat >> /usr/local/snmp/share/snmp/snmpd.conf << EOF
rocommunity $password 101.199.100.150
rocommunity $password 220.181.150.98
rocommunity $password 180.153.229.230
rocommunity $password 220.181.150.125
rocommunity $password 103.28.10.223
EOF
   ;;
   3)
   cat >> /usr/local/snmp/share/snmp/snmpd.conf << EOF
rouser $username auth
EOF
#   echo "createUser $2 MD5 $3" >>/var/net-snmp/snmpd.conf
#   cat >> /var/net-snmp/snmpd.conf << EOF
#createUser $2 MD5 $3
#EOF
   ;;
   *)
   echo "Please check your input version" 1>&2
   echo
   exit 1
   ;;
  esac
 i=0
 while [ $i -lt 5 ]
 do
   ret=`/usr/local/snmp/sbin/snmpd`
   ret=`ps aux | grep -v grep | grep snmp`
   if [ "$ret"x = ""x ]
   then
     ((i=i+1))
     ret=`/usr/local/snmp/sbin/snmpd`
   else
     break
   fi
 done
 case $version in
 3)
   echo "createUser $username MD5 $password" >>/var/net-snmp/snmpd.conf
 ;;
 esac
 pid=`ps -ef|grep snmpd|grep -v grep|awk '{print $2}'`
 echo "pid: $pid"
 if [ "$pid"x != ""x ]
 then 
   kill -9 $pid
   /usr/local/snmp/sbin/snmpd
 else
   /usr/local/snmp/sbin/snmpd
 fi   
 case $version in
 3)
   cmd=`cat /var/net-snmp/snmpd.conf|grep "$username"`
   if [ "$cmd"x == ""x ]
   then
     pid=`ps -ef|grep snmpd|grep -v grep|awk '{print $2}'`
     if [ "$pid"x != ""x ]
     then
       kill -9 $pid
       echo "createUser $username MD5 $password" >>/var/net-snmp/snmpd.conf
     fi
   fi
 ;;
 esac
 ret=`ps -ef | grep -v grep | grep snmp`
 if [ "$ret"x != ""x ]
 then
  echo "snmp start success"
  echo
 else
  echo "snmp start failed"
  echo
  exit 4
 fi
 echo "Finish..."
 echo
 exit 0

相關文章

  • Linux中SELinux、Shell簡介、touch命令的應用小結

    Linux中SELinux、Shell簡介、touch命令的應用小結

    SELinux(Security-Enhanced Linux)是美國國家安全局(NSA)對于強制訪問控制的實現(xiàn),是Linux歷史上最杰出的新安全子系統(tǒng),這篇文章主要介紹了Linux中SELinux、Shell簡介、touch命令的應用知識總結,需要的朋友可以參考下
    2023-02-02
  • Linux中10個有用的命令行補全例子

    Linux中10個有用的命令行補全例子

    這篇文章主要為大家詳細介紹了Linux中10個有用的命令行補全例子,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 查看linux中某個端口(port)是否被占用的方法

    查看linux中某個端口(port)是否被占用的方法

    下面小編就為大家?guī)硪黄榭磍inux中某個端口(port)是否被占用的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • awk基礎知識小結

    awk基礎知識小結

    awk基礎知識小結,方便學習awk的朋友
    2013-02-02
  • shell腳本源碼安裝nginx的詳細過程

    shell腳本源碼安裝nginx的詳細過程

    這篇文章主要介紹了shell腳本源碼安裝nginx,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • Shell腳本case語句簡明教程

    Shell腳本case語句簡明教程

    這篇文章主要介紹了Shell腳本case語句簡明教程,非常容易看懂的一篇文章,需要的朋友可以參考下
    2014-07-07
  • Shell腳本實現(xiàn)簡單分割字符串

    Shell腳本實現(xiàn)簡單分割字符串

    這篇文章主要介紹了Shell腳本實現(xiàn)簡單分割字符串,本文講解使用CUT命令實現(xiàn)以逗號、分號或其它分隔符來切割字符串,需要的朋友可以參考下
    2015-02-02
  • Linux系統(tǒng)中查看目錄權限的命令詳解

    Linux系統(tǒng)中查看目錄權限的命令詳解

    在?Linux?系統(tǒng)中,文件和目錄的權限管理是保證系統(tǒng)安全和數(shù)據(jù)安全的重要機制,正確理解和使用權限設置,可以幫助用戶有效地控制對文件和目錄的訪問,本文給大家介紹了Linux系統(tǒng)中查看目錄權限的命令,需要的朋友可以參考下
    2024-12-12
  • linux命令scp和sftp詳細介紹

    linux命令scp和sftp詳細介紹

    這篇文章主要介紹了linux命令scp和sftp詳細介紹的相關資料,需要的朋友可以參考下
    2017-04-04
  • shell字符截取命令之cut命令的實例詳解

    shell字符截取命令之cut命令的實例詳解

    這篇文章主要介紹了shell字符截取命令之cut命令的實例詳解的相關資料,希望通過本文大家能夠掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09

最新評論

翁牛特旗| 涞水县| 徐闻县| 岑溪市| 耿马| 茂名市| 全南县| 乌拉特后旗| 招远市| 建水县| 诸暨市| 文成县| 绍兴县| 汕头市| 阿合奇县| 屯留县| 敦化市| 富平县| 新龙县| 新兴县| 吴江市| 玉田县| 合作市| 汝州市| 长阳| 如东县| 济源市| 桃园市| 额尔古纳市| 灵璧县| 西乡县| 洛浦县| 宽城| 恩施市| 连云港市| 六盘水市| 大荔县| 同江市| 鲁甸县| 乾安县| 北碚区|