CACTI批量添加linux主机sh脚本
关于批量添加就三个文件:add_hosts.sh,ips.txt,thold_test.php,关于如何使用,更是简单
./add_hosts.sh --add #执行批量工作./add_hosts.sh --help #查看帮助
1、cli/add_host.sh
- #!/bin/bash
- ## @author : admin@51bbo.com
- ## @date : 2014.06.09
- ## @action : cacti批量填加机器
- ## @doc : http://www.cacti.net/downloads/docs/html/cli_add_graphs.html
- ##
- PATH =/usr/local/php/bin:$PATH
- THISDIR =$(cd $(dirname $0); pwd)
- function linux_monitor() {
- while read host_line
- do
- #读取IP列表
- host_name =$(echo $host_line |awk '{print $1}')
- host_ip =$(echo $host_line |awk '{print $2}')
- host_tree =$(echo $host_line |awk '{print $3}')
- #添加cacti设备
- php add_device.php --description = "$host_name($host_ip)" --ip = "$host_ip" --template = 1 --version= 2 --community = "chilijoy"
- #读取设备ID
- host_ids =$(php add_graphs.php --list-hosts |grep $host_ip |awk '{print $1}')
- #创建模板图像
- php add_graphs.php --host-id = "$host_ids" --graph-type = cg --graph-template-id = 4
- php add_graphs.php --host-id = "$host_ids" --graph-type = cg --graph-template-id = 7
- php add_graphs.php --host-id = "$host_ids" --graph-type = cg --graph-template-id = 8
- php add_graphs.php --host-id = "$host_ids" --graph-type = cg --graph-template-id = 9
- php add_graphs.php --host-id = "$host_ids" --graph-type = cg --graph-template-id = 13
- php add_graphs.php --host-id = "$host_ids" --graph-type = cg --graph-template-id = 41
- #创建网卡数据图像
- #php add_graphs.php --host-id = "$host_ids" --graph-type = ds --graph-template-id = 2 --snmp-query-id = 1 --snmp-query-type-id = 13 --snmp-field = ifOperStatus --snmp-value = "up"
- php add_graphs.php --host-id = "$host_ids" --graph-type = ds --graph-template-id = 2 --snmp-query-id = 1 --snmp-query-type-id = 13 --snmp-field = ifDescr --snmp-value = "eth0"
- #创建分区数据图像
- php add_graphs.php --host-id = "$host_ids" --graph-type = ds --graph-template-id = 26 --snmp-query-id = 8 --snmp-query-type-id = 18 --snmp-field = hrStorageDescr --snmp-value = "/"
- php add_graphs.php --host-id = "$host_ids" --graph-type = ds --graph-template-id = 26 --snmp-query-id = 8 --snmp-query-type-id = 18 --snmp-field = hrStorageDescr --snmp-value = "/data"
- php add_graphs.php --host-id = "$host_ids" --graph-type = ds --graph-template-id = 26 --snmp-query-id = 8 --snmp-query-type-id = 18 --snmp-field = hrStorageDescr --snmp-value = "Swap space"
- #添加设备到相应的组
- php add_tree.php --host-id = "$host_ids" --type = node --node-type = host --tree-id =$host_tree
- #添加自动阀值
- cd ../plugins/thold; php thold_test.php "$host_ids"
- cd $THISDIR
- #开启主机监控
- mysql -uroot -p'password' -e "update cacti.host set monitor = 'on' where id = '$host_ids' "
- done < $THISDIR/ips.txt
- }
- function windows_monitor() {
- echo
- }
- usage ="\
- Usage:
- php add_device.php --help
- php add_graphs.php --help
- php add_tree.php --help
- shell > php add_graphs.php --list-snmp-queries
- Known SNMP Queries:(id, name)
- 1 SNMP - 接口统计
- 2 ucd/net - 获取被监控分区
- 3 Karlnet - 无线网桥统计
- 4 Netware - 获取可用卷
- 6 Unix - 获取已挂载分区
- 7 Netware - 获取处理器信息
- 8 SNMP - 获取已挂载分区
- 9 SNMP - 获取处理器信息
- 10 ucd/net - Device I/O
- shell > php add_graphs.php --list-snmp-fields --host-id = 25 --snmp-query-id = 1
- Known SNMP Fields for host-id 25: (name)
- ifAlias
- ifDescr
- ifHwAddr
- ifIndex
- ifIP
- ifName
- ifOperStatus
- ifSpeed
- ifType
- shell > php add_tree.php --list-trees
- Known Trees:
- id sort method name
- 4 手动排序 (不排序) 1-项目1
- 5 手动排序 (不排序) 2-项目2
- shell > php add_graphs.php --list-query-types --snmp-query-id = 1
- Known SNMP Query Types: (id, name)
- 2 输入/输出 错误/丢包
- 3 输入/输出 非单播包
- 4 输入/输出 单播包
- 9 输入/输出 字节 (64位计数)
- 13 输入/输出 位
- 14 输入/输出 位(64位计数)
- 16 输入/输出 字节
- 20 输入/输出 位(95%)
- 21 输入/输出 位(总带宽)
- 22 输入/输出 字节(总带宽)
- shell > php add_graphs.php --list-snmp-values --host-id = 25 --snmp-query-id = 1 --snmp-field = ifDescr
- Known values for ifDescr for host 25: (name)
- eth0
- lo
- shell > php add_graphs.php --list-snmp-values --host-id = 25 --snmp-query-id = 1 --snmp-field =ifOperStatus
- Known values for ifOperStatus for host 25: (name)
- Up
- shell > cat ips.txt #文件格式
- ID IP host tree
- s_name 192.168.0.1 5
- $0 --add #执行批量工作
- $0 --help #查看帮助\n"
- for ARGS in "$@"
- do
- case $ARGS in
- -add|--add)
- linux_monitor;;
- -h|-help|--help)
- echo -e "$usage";;
- esac
- done
2、cli/ips.txt
- [root@s_name cli]# cat ips.txt
- s0.name 192.168.1.200 5
- s1.name 192.168.1.210 5
- s2.name 192.168.1.220 6
3、plugins/thold/thold_test.php
- [root@s_name thold]# cat plugins/thold/thold_test.php
- <?php
- chdir ('../../');
- include ( "./include/global.php" );
- include_once ( $config ['library_path'] . '/rrd.php');
- include_once ( $config ['base_path'] . '/plugins/thold/thold_functions.php');
- $hostid = $_SERVER ['argv'][1];
- #print $hostid ;
- $c = autocreate( $hostid );
- if ( $c == 0) {
- print 'Either No Templates or Threshold(s) Already Exists - No thresholds were created.';
- }
- 本文来自:Linux学习网
CACTI批量添加linux主机sh脚本的更多相关文章
- python批量修改linux主机密码
+++++++++++++++++++++++++++++++++++++++++++标题:python批量修改Linux服务器密码时间:2019年2月24日内容:基于python实现批量修改linu ...
- linux执行sh脚本文件命令
linux执行sh脚本文件命令 很多时候需要多个命令来完成一项工作,而这个工作又常常是重复的,这个时候我们自然会想到将这些命令写成sh脚本,下次执行下这个脚本一切就都搞定了,下面就是发布代码的一个脚本 ...
- cacti批量添加主机脚本
#!/bin/bash ##cacti批量脚本位置 device=/var/www/html/cacti/cli/add_device.php graphs=/var/www/html/cacti/c ...
- Nagios配置—添加linux主机监控
nagios安装请参看:Nginx平台安装Nagios监控服务 下面是我添加linux监控机的过程,如有错误或者不当的地方请指出: 测试环境: 监控主机:nagios+nagios插件+nrpe+网站 ...
- linux编写.sh脚本并赋权限
今日打包编译项目时,发现缺少一个git pull更新项目的脚本,所以在linux编写了一个gitpull.sh脚本,能够实现更新项目的需求. 1.首先vi gitpull.sh或者使用vim编辑器. ...
- 自动化部署脚本--linux执行sh脚本
自动化部署脚本文件目录: 运行主程序:./install.sh #!/bin/bash SCRIPTPATH=$(cd "$(dirname "$0")"; p ...
- 用python实现批量获取Linux主机简要信息并保存到Excel中 unstable 1.1
#!/usr/bin/env python3 # -*- coding: utf-8 -*- #filename get_linux_info.py #获取Linux主机的信息 # titles=[' ...
- Linux为sh脚本文件添加执行权限
chmod是权限管理命令change the permissions mode of a file的缩写..u代表所有者,x代表执行权限. + 表示增加权限.chmod u+x file.sh 就表示 ...
- linux利用sh脚本上传下载文件到ftp服务器
####本地的/app/awsm/csv2 to ftp服务器上的/awsm/#### #!/bin/sh export today=`date +%Y-%m-%d` ftp -v -n 10.116 ...
随机推荐
- 【Java 关键字this 的使用】还阔以调用重载的构造方法
笔记: /** this 关键字的使用除了调用方法和变量外, * 还可以用来显示 调用当前类的重载的指定的构造方法! * 同时也应该必须放到该方法内部的首行! */ 测试: import java.l ...
- Python 字典 (4) 持续更新
字典一种用名字来引用值的数据结构,这种数据结构称为 映射(mapping) .字典中的键可以是数字.字符串和元组. 字典 创建和使用 创建 phonebook = {'Aaron':133000000 ...
- js中回调函数(callback)的一些理解
前言 我个人在学习Node.js相关知识时遇到了回调函数这个概念,虽然之前已经在c,c++等编程语言中用到过它,但还一直未对其机制有深入了解,这次就来好好谈一下它. 概念理解 百度对它的解释是回调函数 ...
- GET与POST方法和用curl命令执行
1.超文本传输协议 超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信,web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端. HTTP的工作方式是客户机与服务器之间 ...
- 洛谷P4689 [Ynoi2016]这是我自己的发明(树上莫队+树链剖分)
题目描述 您正在打galgame,然后突然家长进来了,于是您假装在写数据结构题: 给一个树,n 个点,有点权,初始根是 1. m 个操作,每次操作: 1.将树根换为 x. 2.给出两个点 x,y,从 ...
- html5shiv主要解决IE6-8 无法识别HTML5的新标签,父节点不能包裹子元素,以及应用CSS样式
html5shivehtml5shiv主要IE6-8解决:1,HTML5提出的新的元素不被IE6-8识别.2,这些新元素不能作为父节点包裹子元素,3,并且不能应用CSS样式.让CSS 样式应用在未知元 ...
- JavaScript实现 简易 堆
有两个原始操作用于保证插入或删除节点以后堆是一个有效的最大堆或者最小堆: shiftUp(): 如果一个节点比它的父节点大(最大堆)或者小(最小堆),那么需要将它同父节点交换位置.这样是这个节点在数组 ...
- Win7 : 'java' is not recognized as internal or external command,
Java application is not working in Win 7 64-bit http://answers.microsoft.com/en-us/windows/forum/win ...
- PAT 甲练习 1003 Emergency
1003 Emergency (25 分) As an emergency rescue team leader of a city, you are given a special map of y ...
- Mybatis源码学习之parsing包(解析器)(二)
简述 大家都知道mybatis中,无论是配置文件mybatis-config.xml,还是SQL语句,都是写在XML文件中的,那么mybatis是如何解析这些XML文件呢?这就是本文将要学习的就是,m ...