Linux下實現SNMP一鍵安裝的Shell指令碼_linux shell

來源:互聯網
上載者:User

Net-SNMP是一個免費的、開放源碼的SNMP實現,以前稱為UCD-SNMP。SNMP 很多都用其安裝之後,作為監控寶和阿里雲的系統資訊監控使用。下面就來分享linux下實現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 "請輸入參數"   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.360.cn/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 << EOFrocommunity $password 101.199.100.150rocommunity $password 220.181.150.98rocommunity $password 180.153.229.230rocommunity $password 220.181.150.125rocommunity $password 103.28.10.223EOF   ;;   3)   cat >> /usr/local/snmp/share/snmp/snmpd.conf << EOFrouser $username authEOF#   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
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.