Shell学习笔记之shell脚本和python脚本实现批量ping IP测试

0x00 将IP列表放到txt文件内

先建一个存放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

0x01 使用Shell脚本实现

创建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()

注意:请不要直接粘贴复制,如果使用以上shell请在linux主机的vim中自己手动编写,不然会出现换行符报错!

# syntax error near unexpected token `do!

添加脚本权限

[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

0x02 使用Python脚本实现

创建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

参考

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏以南小隐-数通那些事儿

EVE-NG-PRO导入Dynamips镜像《EVE-NG系列教程二》

2.7K4
来自专栏小狼的世界

Apache服务器访问过慢分析及解决

起因:线上的一台服务器,最近总是出现 访问 很慢的情况发生,点击一个链接要2秒钟以上才能打开,按照我们对于访问人数的估计,服务器应该不至于响应这么慢,从而需要针...

3422
来自专栏PHP在线

apache2.4.x三种MPM介绍

Apache 2.X 支持插入式并行处理模块,称为多路处理模块(MPM)。在编译apache时必须选择也只能选择一个MPM,对类UNIX系统,有几个不同的M...

2949
来自专栏Spring相关

mybatis开启二级缓存小记

首先在全局配置文件 mybatis-configuration.xml 文件中加入如下代码:

1263
来自专栏Java技术分享

MongoDB基础语句

MongoDB数据库安装地址:http://jingyan.baidu.com/article/d5c4b52bef7268da560dc5f8.html

55910
来自专栏王小雷

pgAdmin4 ubuntu python 安装

ubuntu安装pgAdmin4,通过python的pip 安装 pgAdmin4.(首更时间20161205) 新版本的pgAdmin4目前支持mac/w...

3777
来自专栏琦小虾的Binary

BeagleBone Black 固件升级

以前以为自己把自己的BeagleBone Black(简称 BBB)板子玩坏了,然后项目上又给了一个 BBB 板子,后来发现上面的 Linux 系统是不全的,连...

3369
来自专栏沈唁志

简单配置.htaccess就可以实现的几个功能

3284
来自专栏以南小隐-数通那些事儿

EVE-NG-PRO初始化安装配置《EVE-NG系列教程一》

6.7K3
来自专栏Java开发

Linux 查看网卡UUID

4392

扫码关注云+社区

领取腾讯云代金券