Linux Shell脚本实现批量PING测试

简介: Linux Shell脚本实现批量PING测试

Linux Shell脚本实现批量PING测试

需求:
通过Linux服务器定时ping验证目标IP地址连通情况。
目标IP地址以TXT文件方式存储在本地。
生成的测试记录包含测试时间、目标IP地址、连通情况。

1、测试目的IP地址列表

39.156.66.18
203.119.129.109
111.30.164.236

image

2、批量PING脚本

#!/bin/bash
#
#获取当前时间
datetimevar=`date "+%Y-%m-%d %H:%M:%S"`
#读取IP列表行数
lineNumber=`cat iplist.txt |wc -l`
#设置计数参数
count=0
#循环读取IP并测试
for i in `cat ./iplist.txt`
    do
        #计数器
        count=$((count+1))
        #控制台打印当前进度
        echo "${i} ${count}/${lineNumber}"
        #PING并保留丢包数
        p=`ping -c 1 $i|grep loss|awk '{print $6}'|awk -F "%" '{print $1}'`
            #因为只PING一次,丢包数为0则表示成功,否则失败
            if [ $p -eq 0 ]
                then
                    echo "${datetimevar}|${i}|true" >> ./ipcheckdown.txt
                else
                    echo "${datetimevar}|${i}|fail" >> ./ipcheckdown.txt
            fi
    done

image

3、设置脚本文件运行权限

chmod +x pingtest.sh
image

4、执行脚本(回显执行进度)

./pingtest.sh
image

5、查看结果

cat ipcheckdown.txt
image

6、添加定时任务,设置每分钟运行一次

crontab -e
*/1 * * * * /root/pingtest.sh
image

7、运行情况(是否显示与具体系统设置有关)

自动执行后系统提示“您在 /var/spool/mail/root 中有新邮件”
image

查看结果
image

8、备注

通过Windows系统编辑的文件在Linux中执行时,若由于文件格式问题导致报错,例如:
(1)脚本字符格式异常:
【/bin/bash^M: 坏的解释器: 没有那个文件或目录】
(2)IP列表格式问题导致脚本读取IP异常:
【:未知的名称或服务- 5 ./pingtest.sh第17行•••】
(3)问题原因:
在Windows下每一行结尾是nr,而Linux下则是n,所以才会有多出来的r。
修改方式:
使用指令 sed -i 's/\r$//' 文件名,将上面的指令会把文件中的r 替换成空白。

Yunxi.D
2020-06-04
2020-06-10(追加)

目录
相关文章
|
9天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
17天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
70 1
|
19天前
|
Linux Shell Python
Linux执行Python脚本
Linux执行Python脚本
26 1
|
26天前
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 锁定终端 vlock命令 使用指南
【Shell 命令集合 系统管理 】Linux 锁定终端 vlock命令 使用指南
35 1
|
26天前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 显示当前登录到系统的用户信息 who命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示当前登录到系统的用户信息 who命令 使用指南
42 1
|
26天前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 显示目前登入系统的用户信息 w命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示目前登入系统的用户信息 w命令 使用指南
42 2
|
26天前
|
存储 Shell Linux
【Shell 命令集合 系统管理 】Linux 修改用户的属性和配置 usermod命令 使用指南
【Shell 命令集合 系统管理 】Linux 修改用户的属性和配置 usermod命令 使用指南
30 1
|
26天前
|
搜索推荐 Shell Linux
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
32 2
|
9天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
【4月更文挑战第9天】本文探讨了Python在自动化测试中的应用,强调其作为热门选择的原因。Python拥有丰富的测试框架(如unittest、pytest、nose)以支持自动化测试,简化测试用例的编写与维护。示例展示了使用unittest进行单元测试的基本步骤。此外,Python还适用于集成测试、系统测试等,提供模拟外部系统行为的工具。在脚本编写实践中,Python的灵活语法和强大库(如os、shutil、sqlite3、json)助力执行复杂测试任务。同时,Python支持并发、分布式执行及与Jenkins、Travis CI等持续集成工具的集成,提升测试效率和质量。
|
10天前
|
Shell Linux
【Linux】12. 模拟实现shell
【Linux】12. 模拟实现shell
26 2