• 写一个配置文件保存被监控主机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. Rust <3>:控制流

    if.loop.for.while: fn main() { if 3 > 4 { println!{">"}; } else { println!{"< ...

  2. 力扣算法题—147Insertion_Sort_List

    Sort a linked list using insertion sort. A graphical example of insertion sort. The partial sorted l ...

  3. 用java api 实现查询 Hive 数据

    版本:cdh5.4.7, hive1.1.0 pom文件 <dependency> <groupId>org.apache.hive</groupId> <a ...

  4. sort的排序及使用

    sort() 方法在适当的位置对数组的元素进行排序,并返回数组.数组会按照字符的Unicode进行排序(把数组里面当成字符串处理) 1. 按升序排列: var arr=[1,11,2,22,5,4,0 ...

  5. mac 完全卸载vscode

    原文分隔线====================== while writing go this morning, I found that the wrong code are not under ...

  6. bat批处理----set

    转载自    https://www.cnblogs.com/Braveliu/p/5081084.html [1]set命令简介 set,设置. [2]set命令使用 1. 打印系统环境变量.set ...

  7. change transformation file in PI interface

    1. Jane extends the ZTMMASKU sap table 2. Jane write the program to write the new attribute to the t ...

  8. fragment中的onCreateView和onViewCreated的区别和

    (1)  onViewCreated在onCreateView执行完后立即执行. (2)  onCreateView返回的就是fragment要显示的view.

  9. SVN版本管理与大型代码上线方案(一)

    SVN版本管理与大型代码上线方案(一) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打开百度网盘手机App,操 ...

  10. transform:translate(-50%,-50%)

    和父亲元素没关系,走自己盒子宽度一半