您好,登錄后才能下訂單哦!
這篇文章主要介紹Linux下如何實現SNMP一鍵安裝的Shell腳本,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Net-SNMP是一個免費的、開放源碼的SNMP實現,以前稱為UCD-SNMP。SNMP 很多都用其安裝之后,作為監控寶和阿里云的系統信息監控使用。
#!/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.#/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下如何實現SNMP一鍵安裝的Shell腳本”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。