• 写一个配置文件保存被监控主机SSH连接信息,格式:IP User Port
[root@Test ~]# cat host
10.10.10.10 root 22
10.10.10.11 root 22
  • 配置防火墙规则
iptables -A INPUT  -m state --state RELATED,ESTABLISHED -j ACCEPT
  • 创建ssh免密通道
[root@Test ~]# ssh-keygen -t rsa -f ~/.ssh/id_dsa -P ""
[root@Test ~]# ssh-copy-id root@10.10.10.10
[root@Test ~]# ssh-copy-id root@10.10.10.11
  • 脚本如下
#!/bin/bash
disk_file=/tmp/disk
host_info=host
function info() {
echo -e "\033[32m [INFO] \033[0m$@ "
}
function warn() {
echo -e "\033[31m [WARN] \033[0m$@"
}
for IP in `cat $host_info |awk '/^[^#]/{print $1}'`; do
user=`awk -v ip=$IP '$1==ip{print $2}' $host_info`
port=`awk -v ip=$IP '$1==ip{print $3}' $host_info`
ssh -p $port $user@$IP df -h > $disk_file
USE_RATE_LIST=`cat $disk_file |awk 'BEGIN{OFS="="}/^\/dev/{print $1,int($5)}'`
log_info "------------------------------------------------------"
for USE_RATE in $USE_RATE_LIST; do
PART_NAME=${USE_RATE%=*}
USE_RATE=${USE_RATE#*=} if [ $USE_RATE -ge 10 ]; then
warn " $IP $PART_NAME $USE_RATE%!"
else
info " $IP $PART_NAME $USE_RATE%!"
fi
done
done
  • 测试效果
[root@Test ~]# sh a.sh
[INFO] ------------------------------------------------------
[WARN] 10.10.10.10 /dev/mapper/centos-root 10%!
[INFO] 10.10.10.10 /dev/sda1 1%!
[INFO] 10.10.10.10 /dev/mapper/centos-var 4%!
[WARN] 10.10.10.10 /dev/mapper/centos-home 36%!
[WARN] 10.10.10.10 /dev/mapper/centos-opt 15%!
[INFO] ------------------------------------------------------
[WARN] 10.10.10.11 /dev/mapper/centos-root 18%!
[WARN] 10.10.10.11 /dev/sda1 15%!

这是颜色内容

这是颜色内容

shell脚本批量监控主机磁盘信息的更多相关文章

  1. shell脚本批量ssh登陆主机并执行命令

    shell脚本批量ssh登陆主机并执行命令 今天在客户现场遇到了这个问题,客户没有管理工具,无法批量登陆主机下发命令,几个个C段啊,让我一个一个登陆,.................. 所以写了个s ...

  2. Linux shell脚本 批量创建多个用户

    Linux shell脚本 批量创建多个用户 #!/bin/bash groupadd charlesgroup for username in charles1 charles2 charles3 ...

  3. Shell 脚本批量创建数据库表

    使用 Shell 脚本批量创建数据表 系统:Centos6.5 64位 MySQL版本:5.1.73 比如下面这个脚本: #!/bin/bash #批量新建数据表 for y in {0..199}; ...

  4. 生产环境Shell脚本Ping监控主机是否存活(多种方法)

    在网上针对shell脚本ping监控主机是否存活的文档很多,但大多都是ping一次就决定了状态,误报率会很高,为了精确判断,ping三次不通再发告警,只要一次ping通则正常.于是,今天中午抽出点时间 ...

  5. shell脚本批量执行命令----必需判断上一步执行结果--没有捷径

    # 注意:shell脚本批量执行命令,不能只写一个函数,然后把所有命令复制进去,之前试过这样是不行的.必须要有一个判断命令执行成功与否的语句 # 简单的命令可以不加结果判断符号,但是遇到解压包.sed ...

  6. shell脚本批量开启防火墙端口

    # 注意:shell脚本批量执行命令,不能只写一个函数,然后把所有命令复制进去,之前试过这样是不行的.必须要有一个判断命令执行成功与否的语句 # 简单的命令可以不加结果判断符号,但是遇到解压包.sed ...

  7. linux系统配置文件或shell脚本批量注释

    1. 配置文件批量注释 1.1 批量注释 ① 进入命令行模式,按ctrl + v进入 visual block模式,键盘上下箭头选中多行,把需要注释的行标记起来 ② 按大写字母I,再输入注释符:# ③ ...

  8. 用shell脚本批量修改文件后缀名

    早上本想将一些照片上传到相册中,但是由于所有照片的扩展名都是JPG而不是小写的jpg,因此造成了“格式不正确”而不能上传照片.此刻就产生了这样一个问题:使用shell脚本如何批量将所有文件的扩展名JP ...

  9. shell脚本批量生成配置文件

    如果管理的站点和服务器较多的情况下,每次修改配置文件都相当痛苦.因而想到了用shell脚本来批量生成配置文件和配置数据.下面这个脚本是为了批量生成nagios监控配置文件的一个shell脚本程序.其原 ...

随机推荐

  1. js中的关键子in的使用方法

    https://blog.csdn.net/jvid_sky/article/details/54967359

  2. Pandas数据处理 学习

    pandas是在numpy的基础上建立的新程序库,提供了一种高效的DataFrame数据结构. DataFrame本质上是一种带行标签和列标签.支持相同数据类型和缺失值的多维数组. 先看版本信息: p ...

  3. Rust <4>:所有权、借用、切片

    tips:栈内存分配大小固定,访问时不需要额外的寻址动作,故其速度快于堆内存分配与访问. rust 所有权规则: 每一个值在任意时刻都有且只有唯一一个所有者 当所有者离开作用域时,这个值将被丢弃 所有 ...

  4. 20140914 1到N自然数排序

    1.关于一道1到N自然数排序的华为面试题 http://blog.csdn.net/hongyuan19/article/details/1887656 为什么想进入华为 你对华为了解多少? 华为给我 ...

  5. jmeter 后台运行 setsid bin/jmeter -n -t .jmx文件 -l .jtl文件

    备注: 另外,在Linux下我们有时候希望线程可以在后台运行,这样我们关闭当前连接后,线程依然可以运行,这里提供一个将 jmeter命令设置为后台线程的方法. 使用setsid命令:  setsid  ...

  6. spring boot MVC

    1 spring boot的用途 第一,spring boot可以用来开发mvc web应用. 第二,spring boot可以用来开发rest api. 第三,spring boot也可以用来开发w ...

  7. 如何深入理解Java泛型

    一.泛型的作用与定义 1.1泛型的作用 使用泛型能写出更加灵活通用的代码泛型的设计主要参照了C++的模板,旨在能让人写出更加通用化,更加灵活的代码.模板/泛型代码,就好像做雕塑时的模板,有了模板,需要 ...

  8. Python删除列表中的空格

    list1 = ['122','2333','3444',' ','422',' ',' ','54',' '] list1=[x.strip() for x in list1 if x.strip( ...

  9. linux下又一次定位svn url方法

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/oudahe/article/details/34437661 linux下又一次定位svn url方 ...

  10. 【Neo4j查询优化系列】如何快速统计节点的关系数

    在图数据库中我们经常需要统计节点上的关系数目.一种常见的查询写法是这样的: MATCH (n:Person {name:'Keanu Reeves'})-[]-() RETURN count(*); ...