写一个脚本,读取一个包含IP地址的文件,通过ping命令测试文件中的指定的IP地址的所有主机是否在线, 每个IP只ping 两个包,如果在线,就显示“某ip is up”,如果不在线,就显示“某ip is down用shell脚本写
时间: 2024-10-12 10:15:41 浏览: 8
以下是一个简单的Shell脚本示例,它将读取一个包含IP地址的文件,并对每个IP地址进行ping操作。这个脚本假设你已经有一个名为`ips.txt`的文件,其中一行一个IP地址。
```bash
#!/bin/bash
# 用于存储结果的数组
results=()
# 遍历IP地址文件
while read -r ip; do
# 使用ping发送两个数据包并记录返回状态
ping_result=$(ping -c 2 $ip | grep "received" | awk '{print $4}' | cut -d'(' -f2 | cut -d')' -f1)
# 判断主机是否在线
if [[ "$ping_result" -eq "2" ]]; then
echo "$ip is up"
else
echo "$ip is down"
fi
# 将结果添加到数组中
results+=("$ip $ping_result")
done < ips.txt
# 输出所有IP的结果
for result in "${results[@]}"; do
echo "$result"
done
#
相关问题
编写一个从111文件读取域名通过ping获取到ip地址后将ip地址存放到222文件的shell脚本
以下是一份示例的shell脚本代码:
```
#!/bin/bash
# 从文件111读取域名列表
for domain in $(cat 111); do
# 通过ping获取域名的IP地址
ip=$(ping -c 1 $domain | grep PING | awk '{print $3}' | tr -d '()')
# 将获取到的IP地址存入文件222
echo "$ip" >> 222
done
```
说明:
- `#!/bin/bash` 表示使用bash shell编写该脚本。
- `for domain in $(cat 111); do` 表示循环读取文件111中的每一行,并将其作为变量`domain`。
- `ip=$(ping -c 1 $domain | grep PING | awk '{print $3}' | tr -d '()')` 表示使用`ping`命令获取域名对应的IP地址,并将结果赋值给变量`ip`。
- `echo "$ip" >> 222` 表示将变量`ip`的值追加到文件222的末尾。
请注意,在执行该脚本之前,您需要确保文件111和222存在,并且有相应的读写权限。
写一个bat脚本:实现ping在txt文件内的多个特定ip
当然可以。在Windows上,你可以创建一个批处理(bat)脚本来ping文本文件中的多个IP地址。下面是一个简单的示例:
```batch
@echo off
setlocal enabledelayedexpansion
rem 指定包含IP地址的文本文件路径
set "ipListFile=your_ip_list.txt"
rem 创建一个新的结果文件(如果不存在)
if not exist ping_results.txt (
echo Pinging IP addresses...
echo %DATE% %TIME% >> ping_results.txt
)
rem 打开并读取IP列表文件
(for /F "tokens=*" %%i in (%ipListFile%) do (
set "currentIP=%%i"
rem 添加ping命令到行尾,并追加回车符
echo !currentIP! >> ping_results.txt
rem 执行ping命令并将结果追加到结果文件
ping -n 1 !currentIP! >> ping_results.txt
echo Ping to !currentIP! completed.
echo %DATE% %TIME% >> ping_results.txt
echo ----------- >> ping_results.txt
))
echo All pings finished. Results saved in ping_results.txt.
pause
```
在这个脚本中,你需要将`your_ip_list.txt`替换为你实际存放IP地址的文本文件名。每个IP一行,无需额外格式。运行这个.bat文件,它会逐条ping每一个IP,并将结果保存在`ping_results.txt`文件中。
阅读全文