linux监控脚本
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监控脚本的更多相关文章
- 【不积跬步,无以致千里】五个常用的Linux监控脚本代码
为大家提供五个常用Linux监控脚本(查看主机网卡流量.系统状况监控.监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告.监控CPU和内存的使用情况.全方位监控主机),有需要的朋友不妨看 ...
- 几个常用的Linux监控脚本
几个常用的Linux监控脚本 几个常用的Linux监控脚本下面是几个主机监控的脚本,大家可以根据自己的情况再进行修改,希望能给大家一点帮助.1.查看主机网卡流量#!/bin/bash#network# ...
- 五个常用的Linux监控脚本代码
bash中 2>&1 & 的解释 1.首先,bash中0,1,2三个数字分别代表STDIN_FILENO.STDOUT_FILENO.STDERR_FILENO,即标准输入(一般 ...
- linux监控脚本,脚本支持传参,整合C程序
1,查看指定用户下的进程pid
- linux 监控脚本运行时间
虽然可以使用time命令,但是有时候会有写日志之类的需求. 使用如下脚本可以计算时间: #!/bin/bash sdate=`date +%s.%N` edate=`date +%s.%N` echo ...
- Linux系统性能统计工具Sar和实时系统性能监控脚本
sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情 ...
- linux shell脚本守护进程监控svn服务
最近搭建的svn服务不知道什么原因服务总是被关闭(如果你不知道怎么搭建svn可以参考linux下搭建svn版本控制软件),因此用shell脚本实现一个守护进程.用于监控svn服务是否启动,如果服务不在 ...
- linux系统CPU,内存,磁盘,网络流量监控脚本
前序 1,#cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2,#vmstat –s 或者#vmstat 虚拟内存统计 3, #cat ...
- Linux 服务器系统监控脚本 Shell【转】
转自: Linux 服务器系统监控脚本 Shell - 今日头条(www.toutiao.com)http://www.toutiao.com/i6373134402163048961/ 本程序在Ce ...
随机推荐
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别
getX()是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏 ...
- Linux系统编程(5)——文件与IO之mmap函数
mmap系统调用它本身提供了不同于一般对普通文件的访问方式,进程可以像读写内存一样对普通文件的操作.而Posix或系统V的共享内存IPC则纯粹用于共享目的,mmap()实现共享内存也是其主要应用之一. ...
- App开发革命进阶路
APP开发的成败,或许不是程序编辑的多么完美,界面设计的多么精致,其实这就是一场用户体验的革命. APP的使用场景是移动设备,人机交互以单指手“触点”为主,大段文字输入是交互的禁区.因此,APP带来了 ...
- UESTC_秋实大哥掰手指 2015 UESTC Training for Dynamic Programming<Problem B>
B - 秋实大哥掰手指 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 2048/1024KB (Java/Others) Submit ...
- Minimum Depth of Binary Tree 解答
Question Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along ...
- 添加python第三方插件时出现的问题
当我安装beautifulsoup4时出现了如下错误: Fatal error in launcher: Unable to create process using '""F:\ ...
- Nginx PHP MySql 编译安装
以CentOS5.6为平台编译安装.确保系统已经安装gcc/gcc-c++编译器! 1.Nginx-1.0.14 2.PHP-5.3.10 3.MySql-5.1.61 安装相关依赖开发库: auto ...
- JS~delegate与live
在jquery里有两个方法可以用来绑定自动追加出来的DOM对象,它们是live和delegate,事实上,这两个方法是bind方法的一个变体,在对于固定DOM对象时,我们通常使用bind就可以了,而对 ...
- easy ui 如何单个引用其中某个插件?
记录一下这个方法,前端时间一直在纠结这个问题,后来听一些前辈讲解后才恍然大悟,要单独引用某个插件,我们需要重视的是:easyloaer.js ,easy ui的下载包中也有easyloader的dem ...
- Hacker(四)----查看计算机的IP地址
计算机接入Internet后,Internet就会给该计算机分配一个IP地址,若要查看该IP地址,可以借助度娘(百度,google)来实现.输入"IP地址查询"关键字,即可查看当前 ...