shell初始化安装脚本执行时,需从网络上安装一些rpm包,所有需要先检测网络的畅通性,

代码

#检测网络链接&&ftp上传数据
function networkAndFtp()
{
#超时时间
timeout= #目标网站
target=www.baidu.com #获取响应状态码
ret_code=`curl -I -s --connect-timeout $timeout $target -w %{http_code} | tail -n1` if [ "x$ret_code" = "x200" ]; then
#网络畅通
else
#网络不畅通
fi
}

实际脚本:

#判断网络是否配置正确,如果网络不通,退出安装程序

net_status=`curl -I -s --connect-timeout  www.baidu.com -w %{http_code} |tail -n1`

if [ $net_status -eq  ];then
echo -e "\033[32m[ #########the network connecting is normal, installing now############ ]\033[0m"
sleep
else
echo -e "\033[31m\033[01m[ ##########the network connecting is unstable, please check the network firstly ,then start the install again . 网络连接有问题,安装即将退出,请检查网络后再次安装########## ]\033[0m"
sleep
exit
fi

IDC机房到阿里云vpc网络ping网络连通性

配置zabbix客户端配置文件

vim /etc/zabbix/zabbix_agentd.conf

添加  Include=/etc/zabbix/zabbix_agentd.d/

cat net_status.sh
#!/bin/bash #判断网络延时 idc机房到阿里云vpc网络 #设置环境变量
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
export PATH while getopts "c:i:" opt; do
case $opt in
c)
count=$OPTARG
;;
i)
ips=$OPTARG
;;
\?)
;;
esac
done tmp_fifofile="/tmp/ping.fifo"
mkfifo $tmp_fifofile
exec 6<>$tmp_fifofile
rm $tmp_fifofile for ((i=0;i<20;i++));do
echo
done >&6 for ip in `echo $ips |awk -F'|' '{ for(i=1;i<=NF;i++) {print $i} }'`
do
read -u 6
{
rtt=`ping -c $count $ip |grep rtt |awk '{print $4}' |awk -F'/' '{print $2}'`
rtt=${rtt:-'0'}
echo $rtt
}&
echo >&6
done wait
exec 6>&-

  

[root@gpu007 zabbix_agentd.d]# cat zhiyi.conf 

UserParameter=net_status,/etc/zabbix/scripts/net_status.sh -c 4 -i 192.168.0.167

  

zabbix 客户端重新启动 zabbix-agent

[root@compute zabbix_agentd.d]# systemctl restart zabbix-agent

在 zabbix server 端添加 相应的item

添加相应的trigger

添加相应的graphs

shell脚本检测网络是否畅通的更多相关文章

  1. 多线程shell脚本检测主机存活

    局域网中分了很多网段,而IP地址使用情况也未知,前期也没有规划和记录,当新的主机需要使用固定IP的时候,能否第一时间知道哪个IP空闲就显得很重要了,如果一个一个去ping的话太浪费时间. 这里分享一个 ...

  2. linux shell脚本检测硬盘磁盘空间 邮件报警

    使用 http://www.weiruoyu.cn/?p=368 shell脚本监控硬盘空间剩余空间 邮件报警 1.先观察一下磁盘,和如何使用脚本 [root@localhost ~]# df -h ...

  3. WyBox使用shell脚本检测io口是否正常

    1. 修改mt7620a.dts文件,把gpio管脚复用全都定义为通用gpio /dts-v1/; /include/ "mt7620a.dtsi" / { compatible ...

  4. shell脚本检测监控mysql的CPU占用率

    网站访问量大的时候mysql的压力就比较大,当mysql的CPU利用率超过300%的时候就不能提供服务了,近乎卡死状态,这时候最好的方法 就是重启mysql服务.由于这种事具有不可预见性,我们不知道什 ...

  5. Shell脚本检测Tomcat是否正在运行

    #!/bin/sh # configurations # computer 设备名称 # target 监控目标 # watcher 跟踪者(邮箱) computer="ehetong&qu ...

  6. Shell脚本检测程序,如果挂了就重启程序

    脚本如下: #!/bin/sh #要检查的进程名 PROGRESS_NAME="heihu_server" #----------------------------------- ...

  7. Shell脚本检测文件夹是否已被挂载的方法

    方法1: if grep -qs '/mnt/foo' /proc/mounts; then echo "It's mounted." else echo "It's n ...

  8. shell脚本检测局域网内存活主机

    <1> d211 admin # for i in {3..254} ; do ping -c 1 192.168.1.$i &>/dev/null && e ...

  9. shell脚本查看网络配置

    #!/bin/bash ifconfig|grep -E 'eth|inet'|grep -Ev '(inet6|127.0.0.1)'|sed 's/ /\n/g'|awk NF|grep -Ev ...

随机推荐

  1. read 系统调用剖析【转】

    转自:https://www.ibm.com/developerworks/cn/linux/l-cn-read/ 大部分程序员可能会有这样的疑问:当在程序中调用库函数 read 时,这个请求是经过哪 ...

  2. (1) python--numpy

    废话不多说,直接上代码 import numpy as np # 如何创建一个数组 arr = np.array([1, 2, 3, 4]) print(arr) # [1 2 3 4] # 查看数组 ...

  3. 【linux高级程序设计】(第十四章)TCP高级应用

    文件I/O方式比较 1.阻塞式文件I/O 进程从调用函数开始,直到返回这段时间都处于阻塞状态. 2.非阻塞式文件I/O 如果当前没有数据可操作,将不阻塞当前进程,而是立即返回一个错误信息.需要反复尝试 ...

  4. 高级列表控件ListCtrl关联的MFC中的类:CListCtrl

    高级列表控件ListCtrl关联的MFC中的类:CListCtrl■ 报表样式ListCtrl常用操作:1.添加列标题头:InsertColumn2.获取与设置列宽:GetColumnWidth.Se ...

  5. hdu 1558(计算几何+并查集)

    Segment set Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  6. HTML+JavaScript制作表白特效,表白不成功,小编现场吃雪

    今年的雪特别美,长沙自从08年后的最大的一场学了,今天小编给大家制作一个表白特效,希望大家喜欢,如果你是程序员希望对你有帮助,追到你喜欢的女孩,哈哈~追不到对象,小编现场吃学给你大家看 下图是爱心飘落 ...

  7. (转)unity3d加密资源并缓存加载

    http://www.haogongju.net/art/1931680 首先要鄙视下unity3d的文档编写人员极度不负责任,到发帖为止依然没有更新正确的示例代码. view source   pr ...

  8. (转)stage 3d or unity 3d

    这个是这样子的.stage3d如果不使用flascc的话,性能会卡在as上面.你没卡是因为你用的效果还不够高级.往深了走的高端应用就是卡as性能上.这不是你代码能优化了的.我们后来都改用flascc写 ...

  9. Java this关键字详解

    this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性.例如: public class Demo{ public int x = 10; publi ...

  10. 数据块dump详解及大小表扫描过程

    http://blog.csdn.net/u013820054/article/details/40378233 http://blog.csdn.net/u013820054/article/cat ...