批量检测服务器能否ping通和硬盘容量状态的一个脚本

有一些linux基础,最经刚开始学shell,参考了阿良老师的一个监测服务器硬盘状态的脚本,自己进行了一些扩展,今天比较晚了,后边会把注释放上来,感觉脚本还很不完善,希望大家一起探讨一下,共同学习

#!/bin/sh
source /etc/profile
source /root/.bashrc
HOST_INFO=${PWD}/all_hosts.info
TMP_FILE=${PWD}/all_tmp.log
ALERT_FILE=${PWD}/all_alert.log
echo null > $ALERT_FILE & echo null > $TMP_FILE
for IP in $(awk ‘/^[^#]/{print $1}‘ $HOST_INFO)
do
echo "开始测试服务器:$IP"
ping -c3 $IP 2>&1 >/dev/null
if [ $? -eq 0 ]
then
echo "服务器:$IP 可以连通"
else
DATE=`date`
echo -e "注意!!!服务器:$IP 在时间:$DATE 未能连通\n" 2>&1 >>$ALERT_FILE
fi
USER=$(awk -v ip=$IP ‘ip==$1{print $2}‘ $HOST_INFO)
PORT=$(awk -v ip=$IP ‘ip==$1{print $3}‘ $HOST_INFO)
echo "-------开始检测测盘占用,详情见文件:all_tmp.log,和报警文件:all_alert.log---------"
echo ‘------------------------------------------------------------------------------------‘ >> $TMP_FILE
echo $IP >> $TMP_FILE
ssh -p $PORT [email protected]$IP ‘df -hP‘ >> $TMP_FILE
if [ $? -gt 0 ]
then
echo "请检查服务器:$IP ssh连接!" 2>&1 >>$ALERT_FILE
fi
USE_RATE_LIST=$( awk ‘BEGIN{OFS="="}/^\/dev/{print $1,int($5)}‘ $TMP_FILE)
for USE_RATE in $USE_RATE_LIST; do
PART_NAME=${USE_RATE%=*}
USE_RATE=${USE_RATE#*=}
if [ $USE_RATE -ge 80 ]
then
echo -e "警告:服务器:$IP 磁盘:$PART_NAME 使用率: $USE_RATE" 2>&1 >$ALERT_FILE
fi
done
done

附 :

阿良老师脚本(测试版,改动了文件路径等):

#!/bin/bash
HOST_INFO=/opt/tools/stat_host.info
TMP_FILE=/opt/tools/tmp_stat_disk.log
date > $TMP_FILE
echo ‘------------------------------------------------------------------------------------‘ >> $TMP_FILE
for IP in $(awk ‘/^[^#]/{print $1}‘ $HOST_INFO); do
USER=$(awk -v ip=$IP ‘ip==$1{print $2}‘ $HOST_INFO)
PORT=$(awk -v ip=$IP ‘ip==$1{print $3}‘ $HOST_INFO)
echo ‘------------------------------------------------------------------------------------‘ >> $TMP_FILE
echo $IP >> $TMP_FILE
ssh -p $PORT [email protected]$IP ‘df -h -P‘ >> $TMP_FILE
USE_RATE_LIST=$( awk ‘BEGIN{OFS="="}/^\/dev/{print $1,int($5)}‘ $TMP_FILE)
for USE_RATE in $USE_RATE_LIST; do
PART_NAME=${USE_RATE%=*}
USE_RATE=${USE_RATE#*=}
if [ $USE_RATE -ge 80 ]; then
echo "Warning: $PART_NAME Partition usage $USE_RATE%!" 
fi
done
done
more $TMP_FILE

原文地址:https://www.cnblogs.com/levi-w/p/9643486.html

时间: 2024-11-08 21:04:40

批量检测服务器能否ping通和硬盘容量状态的一个脚本的相关文章

python检测服务器是否ping通

好想在2014结束前再赶出个10篇博文来,~(>_<)~,不写博客真不是一个好兆头,至少说明对学习的欲望和对知识的研究都不是那么积极了,如果说这1天的时间我能赶出几篇精致的博文,你们信不信,哈哈,反正我是信了... python检测服务器是否ping通的2种方法 1.第一种比较挫,就是用ping,python调用shell,这个适用于较少的服务器数量,几百台已经很慢了(当然是说python同步的方法,要是nodejs异步方式还是很快的,但是nodejs CPU计算不行,所以尝试了下只能200台

远程服务器可以ping通,但ssh连接不上的问题解决

最近遇到远程阿里云服务器可以ping通,但ssh连接不上的问题,分析过程如下.1.检查远程服务器的sshd服务是否正常,检查结果是没问题,端口也正常运行.2.用tcpdump src host xxx.xxx.xxx.xx进行抓包,发现有收到客户端的包,说明sshd服务和基本连接都没问题3.怀疑和以前遇到的阿里云服务器MTU值要求比较低有关,用命令修改MTU值就能连上远程服务器了.sudo ip link set dev eth0 mtu 1200 原文地址:http://blog.51cto.

服务器不能ping通自身IP地址

有一次研发的一个哥们,ping自身IP或自己的主机名称时,出现ping不通的情况. 与其他机器做了对比,发现/etc/sysconfig/network目录下的ifcfg-lo文件为空, 使用"ifconfig lo"查看时也是没有127.0.0.1这个地址. 解决办法,从其他机器复制ifcfg-lo文件到本机. 然后,"ifconfig lo up" ifconfig lo up ping <local_self_ip> 即可解决.

Linux下利用nc命令来监控检测服务器的端口使用情况(转载)

最近碰到一个项目,前端用apache htttpd进行发布(80端口),通过双机负载均衡转发到后端的两个tomcat进行处理(8081和8082端口),现在需要随时监控这三个端口的情况,一旦down掉需要能够立即告警处理.批量的系统监控比较好的是用nagios软件来实现,这样小项目专门装一个nagios软件,有点繁琐了.在网上查了一些资料,总结实验了一下,可以用简单的nc命令来实现. 一.nc命令检测端口的用法 # nc -v -w 10 %IP% -z %PORT% -v 显示指令执行过程.

阿里云服务器本地ping超时,远程可以正常ping通

问题: 1.在本地:ping 域名 出现如下结果: 可以看到已经由域名(1)解析出了对应的ip,说明域名解析没有问题.提示请求超时. 2..连接上服务器,ping了一下 可以看到可以ping通 解决办法: 1.进入管理中心-->点击如图更多 2.继续 3.进来可以看到安全组配置 -->点击配置规则 4.可以看到系统已经为我们配置的安全组规则,一般不要删除.在此处我们点击--> 添加安全组规则 5.这样添加一条规则:授权对象 0.0.0.0/0 表示实例(服务器) 所有ip都可以访问 6.

tnsping无法ping通的问题,TNS-12535 TNS操作超时 (服务器环境:window server 2008R2 数据库环境:oracle 11 g)

今天新搭建一个测试用的数据库服务器,操作系统为WIN server 2008 r2 版本.系统内已安装oracle 11g database,数据库服务端已配置完毕,监听listener已开启. 我在通局域网内的其他PC端,操作系统为 win 7 64 旗舰. 配置oracle 10g 32 client,客户端配置完毕.命名完毕.tns服务名设置为 test 当我去测试tns联通情况的时候,反馈我TNS-12535 TNS操作超时,无法正常联通. 一.我先查了一下客户端安装路径下的networ

实例节点的NTP服务器地址配置正确,而且能够ping通, 但是在chronyc sources指令中显示NTP服务器状态为“?”

问题:如果实例节点的NTP服务器地址配置正确,而且能够ping通,   但是在chronyc sources指令中显示NTP服务器状态为“?”, 该如何检查并操作. 1)在chrony配置文件中,检查NTP服务器在当前网段是否打开allow的功能. 2)检查防火墙是否关闭. 原文地址:https://www.cnblogs.com/l-a-s/p/11525514.html

ubuntu 开发板ping通虚拟机挂载nfs服务器

先.nfs服务配置1.设置开发板ip ,同一网段2.开发板上操作:ifconfig eth0 192.168.1.203.测试是否能够ping通:ping 192.168.1.194.测试开发板ip是否被占用: 在主机上:sudo ifconfig eth0 down,看开发板上的ip是否断开.重启网络:/etc/init.d/networking force-reload/etc/init.d/networking restart mount 192.168.1.19:/opt/target

批量ping 查看主机能否ping通,能否ssh上.md,

[[email protected] lilei]$ cat hosts_status.sh #!/bin/bash# 清空脚本结果文件 /tmp/cant_ssh.txt/tmp/cat_ssh.txt/tmp/cant_ping.txt # shell脚本并发查看ip,具体ip列表根据个人信息更改for n in $(awk '{print $1}' /etc/hosts |uniq |grep -v '127.0.0.1')do{ping -w 2 -c 2 $n 1>/dev/null