1,snmp安装脚本for ubuntu/CentOS

#!/usr/bin/env bash
export LC_ALL=C
if [ "$(id -u)" != "" ]
then
echo "This script. must be run as root" >&
exit
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 >/dev/null >&
fi
cmd=`rpm -q perl|grep -v "not installed"`
if [ "$cmd"x = ""x ]
then
yum install -y perl >/dev/null >&
fi
cmd=`rpm -q perl-devel|grep -v "not installed"`
if [ "$cmd"x = ""x ]
then
yum install -y perl-devel >/devel/null >&
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 ;
}
if [ $# -lt ]
then
echo "请输入参数"
Usage
fi
#####get parameters
version=
username=""
password=""
while getopts ":v:u:p:" opt;
do
case $opt in
v)
version=$OPTARG
if [[ ${OPTARG::} = "-" ]]
then
echo ""
echo "-v need argument"
echo ""
Usage
fi
;;
u)
username=$OPTARG
if [[ ${OPTARG::} = "-" ]]
then
echo ""
echo "-u need argument"
echo ""
Usage
fi
;;
p)
password=$OPTARG
if [[ ${OPTARG::} = "-" ]]
then
echo ""
echo "-p need argument"
echo ""
Usage
fi
;;
:)
Usage
;;
?)
paralist=-;
Usage
;;
esac
done
###check version number, must be or
if [ $version -ne "" -a $version -ne "" ]
then
Usage
exit
fi
if [ $version -eq "" -a "$username"x = ""x ]
then
echo "版本3必须要输入用户名"
Usage
fi
###check password length, version big then , version big then
if [ "$version" -eq "" ]
then
if [ ${#password} -lt "" ]
then
echo ""
echo "Your passwords must greater than 8 bytes" >&
echo ""
Usage
fi
else ########### version =
if [ ${#password} -lt "" ]
then
echo ""
echo "Your passwords must greater than 6 bytes" >&
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.
./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
)
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
;;
)
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 $ MD5 $
#EOF
;;
*)
echo "Please check your input version" >&
echo
exit
;;
esac
i=
while [ $i -lt ]
do
ret=`/usr/local/snmp/sbin/snmpd`
ret=`ps aux | grep -v grep | grep snmp`
if [ "$ret"x = ""x ]
then
((i=i+))
ret=`/usr/local/snmp/sbin/snmpd`
else
break
fi
done
case $version in
)
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 - $pid
/usr/local/snmp/sbin/snmpd
else
/usr/local/snmp/sbin/snmpd
fi
case $version in
)
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 - $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
fi
echo "Finish..."
echo
exit

linux监控脚本的更多相关文章

  1. 【不积跬步,无以致千里】五个常用的Linux监控脚本代码

    为大家提供五个常用Linux监控脚本(查看主机网卡流量.系统状况监控.监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告.监控CPU和内存的使用情况.全方位监控主机),有需要的朋友不妨看 ...

  2. 几个常用的Linux监控脚本

    几个常用的Linux监控脚本 几个常用的Linux监控脚本下面是几个主机监控的脚本,大家可以根据自己的情况再进行修改,希望能给大家一点帮助.1.查看主机网卡流量#!/bin/bash#network# ...

  3. 五个常用的Linux监控脚本代码

    bash中 2>&1 & 的解释 1.首先,bash中0,1,2三个数字分别代表STDIN_FILENO.STDOUT_FILENO.STDERR_FILENO,即标准输入(一般 ...

  4. linux监控脚本,脚本支持传参,整合C程序

    1,查看指定用户下的进程pid

  5. linux 监控脚本运行时间

    虽然可以使用time命令,但是有时候会有写日志之类的需求. 使用如下脚本可以计算时间: #!/bin/bash sdate=`date +%s.%N` edate=`date +%s.%N` echo ...

  6. Linux系统性能统计工具Sar和实时系统性能监控脚本

    sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情 ...

  7. linux shell脚本守护进程监控svn服务

    最近搭建的svn服务不知道什么原因服务总是被关闭(如果你不知道怎么搭建svn可以参考linux下搭建svn版本控制软件),因此用shell脚本实现一个守护进程.用于监控svn服务是否启动,如果服务不在 ...

  8. linux系统CPU,内存,磁盘,网络流量监控脚本

    前序 1,#cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2,#vmstat –s 或者#vmstat 虚拟内存统计 3, #cat ...

  9. Linux 服务器系统监控脚本 Shell【转】

    转自: Linux 服务器系统监控脚本 Shell - 今日头条(www.toutiao.com)http://www.toutiao.com/i6373134402163048961/ 本程序在Ce ...

随机推荐

  1. 【转】V4L2+swscale+X264+live555实现流媒体服务端

    写这边博客,一方面是因为自己在做项目的时候不太做笔记,怕以后自己忘记了.另一方面,是让正在寻求资料的同行少走一点弯路吧.不能说我这个方案怎么的好,至少是有一点参考价值的.这边博客需要一定基础才能看明白 ...

  2. hpux操作系统的关机与重新启动命令

    关机  shutdown -hy 0 重新启动: shutdown -ry 0

  3. APPCAN学习笔记004---AppCan与Hybrid,appcan概述

    APPCAN学习笔记004---AppCan与Hybrid,appcan概述 技术qq交流群:JavaDream:251572072 本节讲了appcan的开发流程,和开发工具 笔记不做具体介绍了,以 ...

  4. 从一段代码看fork()函数及其引发的竞争

    首先来看一段从<UNIX环境高级编程>中摘录的一段很有意思的代码.借此我们再来谈谈fork()函数的一些问题. #include "apue.h" static voi ...

  5. Qt开始学习的一些问题

    1.需要将qmake.moc和qvfb的路径加入到系统的环境变量: qmake.moc:export PATH=$PATH:/usr/local/Trolltech/QtEmbedded-4.6.1- ...

  6. [转]标准C++字符串string以及MFC6.0字符串CString的tokenize和split函数

    标准字符串的方法: /******************************************** the tokenize function for std::string ****** ...

  7. <link>: rel, href

    Reference: http://www.w3schools.com/tags/tag_link.asp <link> Attributes: Attribute Value Descr ...

  8. Chapter 01:创建和销毁对象

    <一>考虑用静态工厂方法代替构造器 下面是Boolean类的一个简单示例: public final class Boolean implements java.io.Serializab ...

  9. strace排除Linux服务器故障

    strace是一个有用的小工具 – 大多数Linux系统默认已经安装 – 可以通过跟踪系统调用来让你知道一个程序在后台所做的事情.Strace是一个基础的调试工具;但是即便你不是在跟踪一个问题的时候它 ...

  10. Yii 多表关联relations,需要与with()方法联合使用

    1,首先多表关联是在models/xx.php的relations里配置的.而且是互配,但有区别. 格式: 'VarName'=>array('RelationType', 'ClassName ...