shell脚本和python脚本实现批量ping IP测试
先建一个存放ip列表的txt文件:
[root@yysslopenvpn01 ~]# cat hostip.txt
192.168.130.1
192.168.130.2
192.168.130.3
192.168.130.4
192.168.130.5
192.168.130.6
192.168.130.7
192.168.130.8
192.168.130.9
192.168.130.10
192.168.130.11
192.168.130.12
192.168.130.13
192.168.130.14
192.168.130.15
192.168.130.16
192.168.130.17
192.168.130.18
192.168.130.19
192.168.130.20
创建shell 脚本
[root@yysslopenvpn01 ~]# vim shell_ping.sh #!/bin/sh for i in `cat hostip.txt`
do
ping -c 4 $i|grep -q 'ttl=' && echo "$i ok" || echo "$i failed"
done
exit()
添加脚本权限
[root@yysslopenvpn01 ~]# chmod +x shell_ping.sh
执行:
[root@yysslopenvpn01 ~]# sh shell_ping.sh
192.168.130.1 ok
192.168.130.2 failed
192.168.130.3 failed
192.168.130.4 failed
192.168.130.5 failed
192.168.130.6 failed
192.168.130.7 failed
192.168.130.8 failed
192.168.130.9 failed
192.168.130.10 failed
192.168.130.11 failed
192.168.130.12 failed
192.168.130.13 failed
192.168.130.14 failed
192.168.130.15 failed
192.168.130.16 failed
192.168.130.17 failed
192.168.130.18 ok
192.168.130.19 ok
192.168.130.20 ok
创建python脚本:
[root@yysslopenvpn01 ~]# vim ping.py #!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:xieshengsen # 实现批量ping IP测试 import re
import subprocess def check_alive(ip,count=4,timeout=1):
cmd = 'ping -c %d -w %d %s'%(count,timeout,ip)
p = subprocess.Popen(cmd,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
shell=True
) result=p.stdout.read()
regex=re.findall('100% packet loss',result)
if len(regex)==0:
print "\033[32m%s UP\033[0m" %(ip)
else:
print "\033[31m%s DOWN\033[0m" %(ip) if __name__ == "__main__":
with file('hostip.txt','r') as f:
for line in f.readlines():
ip = line.strip()
check_alive(ip)
执行结果:
[root@yysslopenvpn01 ~]# python ping.py
192.168.130.1 UP
192.168.130.2 DOWN
192.168.130.3 DOWN
192.168.130.4 DOWN
192.168.130.5 DOWN
192.168.130.6 DOWN
192.168.130.7 DOWN
192.168.130.8 DOWN
192.168.130.9 DOWN
192.168.130.10 DOWN
192.168.130.11 DOWN
192.168.130.12 DOWN
192.168.130.13 DOWN
192.168.130.14 DOWN
192.168.130.15 DOWN
192.168.130.16 DOWN
192.168.130.17 DOWN
192.168.130.18 UP
192.168.130.19 UP
192.168.130.20 UP
shell脚本和python脚本实现批量ping IP测试的更多相关文章
- Shell学习笔记之shell脚本和python脚本实现批量ping IP测试
0x00 将IP列表放到txt文件内 先建一个存放ip列表的txt文件: [root@yysslopenvpn01 ~]# cat hostip.txt 192.168.130.1 192.168.1 ...
- 批量Ping IP
刚刚接触Python 想做点什么 听说Python 在网络方便很厉害 后来总结如下: 第一:发现公司都固定IP 每次新来同事都要猜一个没有人用的IP 很费劲 第二:我们公司有的IP可以上QQ 有的不 ...
- python实现本地批量ping多个IP
本文主要利用python的相关模块进行批量ping ,测试IP连通性. 下面看具体代码(python3): #!/usr/bin/env python#-*-coding:utf-8-*- impor ...
- shell 编写脚本批量Ping IP
服务器总是一下子买了很多的段的ip.通过绑定后,也不知道这些ip是否绑定成功,所以就写了一个shell脚本,把ip输好,批量ping一下,看是不是都能ping通. 脚本如下: 此外.还有一个ip文件, ...
- 【原】Gradle调用shell脚本和python脚本并传参
最近由于项目自动化构建的需要,研究了下gradle调用脚本并传参的用法,在此作个总结. Pre build.gradle中定义了$jenkinsJobName $jenkinsBuild两个Jenki ...
- 批量ping IP并检测IP延迟率和丢包率脚本
脚本文件如下: #!/bin/bash #Author:Mr.Ding #Created Time:2018-08-26 07:23:44 #Name:ping.sh #Description: sh ...
- python实现批量ping IP,并将结果写入
最近工作需要,写了一个Python小脚本,分享给大家,因为公司的IP用的差不多了,然后离职人员的IP有没有及时删除,导致没多少IP用了,所以做了一个python脚本跑了跑,清出来一堆ping不通的IP ...
- shell脚本调用python脚本的路径问题
脚本的相互调用中,只有在同一级目录下才可以使用__file__参数去获取路径名,(在shell里使用pwd也同样),否则,使用的就是主文件(最开始运行的脚本程序)的所在位置,是错误路径:一定要注意当期 ...
- 有米实习-用到的shell脚本和Python脚本记录
Shell:LOG_DATE=`date -d "1 day ago" +%Y-%m-%d` #以指定格式设置一天前的年份月份日期 aws s3 ls $LAST5_BASE_PA ...
随机推荐
- dedecms批量删除文档关键词可以吗
这几天在重新整服务器,几个站点都是用dedecms搭建的,版本相对比较早,虽然都已经打了补丁,但客户还是在纠结,所以就下载了新的系统进行搭建(注意编码要和原来的一样),导入数据,一切安好,可发现后台有 ...
- syslog-ng应用详解
syslog-ng应用详解 科技小能手 2017-11-07 02:43:00 浏览136 评论0 日志 LOG 配置 主机 syslog source file varchar 摘要: 最近做一 ...
- sendmail 发送邮件 zabbix 自定义报警
配合zabbix 触发脚本 达到自定义报警目的 #!/bin/bash # Created : 2015.12.08 # Updated : 2015.12.08 # Author : sanmuya ...
- 2019.04.09 电商24 订单模快 ORM
前面三个模块已近结束,现在看是订单模块的.想一下淘宝上的订单,在购物车中选中,提交,跳转到订单界面. 获取传过来的信息,那也要建立一个订单表,当我支付的时候,也要获取一些数据,将这些数据放到这个表中 ...
- Extjs event domain 研究
Listeners and Event Domains In Ext JS 4.2, the MVC event dispatcher was generalized with the introdu ...
- git的reset的理解
git的reset的理解 1.在理解reset命令之前,先对git中涉及到的与该reset命令相关概念进行说明和解释HEAD这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交Indexind ...
- PHP "松散比较"
PHP 的整数和字符串比较是 "松散比较" var_dump('dev' == 0); bool(true) switch switch 在进行比较的时候,只是对值进行比较(&qu ...
- mac系统搭建SVN版本控制
版权声明:本文为博主原创文章,未经博主允许不得转载. SmartSVN 8.6和Keygen for mac(完美破解)http://pan.baidu.com/s/1bnm72qz 一.里面包含Sm ...
- setUp和tearDown及setUpClass和tearDownClass的用法及区别
① setup():每个测试函数运行前运行 ② teardown():每个测试函数运行完后执行 ③ setUpClass():必须使用@classmethod 装饰器,所有test运行前运行一次 ④ ...
- 16.和input相关的知识点
1.改变input里面placeholder颜色 <input class="pre_name" type="text" placeholder=&quo ...