千家信息网

Linux下如何实现SNMP一键安装的Shell脚本

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍Linux下如何实现SNMP一键安装的Shell脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Net-SNMP是一个免费的、开放源码的SNMP实现,以前称为
千家信息网最后更新 2026年11月03日Linux下如何实现SNMP一键安装的Shell脚本

这篇文章主要介绍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.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

以上是"Linux下如何实现SNMP一键安装的Shell脚本"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

版本 密码 脚本 一键 代表 内容 用户 用户名 篇文章 监控 输入 价值 信息 兴趣 参数 小伙 小伙伴 更多 源码 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网巨头反垄断金融科技 唐信互联网科技 顺玮阁互联网科技 互联网金融 科技创新 互联网高科技股票 居家互联网科技有限公司 海南科技产业互联网平台 互联网实体化科技化 互联网科技中介 互联网公司科技股 深圳育鹏互联网科技有限公司招聘 互联网金融科技展 科技互联网海报 锡山区互联网智能科技产品供应 互联网领先科技宣传片 风投北京互联网科技 互联网风格科技公司名称 互联网时代科技型公司的机会 上海旺乐尼互联网科技有限公司 现代科技的标志之一的互联网 互联网为科技 互联网系的金融科技公司 亳州好赞互联网科技有限公司 如何创新互联网科技 内蒙古九一互联网科技 互联网企业科技类企业如何做账 富国互联网金融科技混合基金 上海乐五互联网科技有限公司 陕西九四连强互联网科技有限公司 互联网科技创新创业项目
0