我正在每天运行100个IP的ping测试,每天输入文件IP将更新,因为它的动态。我将输入(100个IP列表)指定为第一个参数。因为下面的脚本将每10分钟运行一次
注意: - 我每天都在使用不同的IP,因此需要每天早上12点更改输入文件
在4月1日上午12点运行脚本作为背景
sh ping.sh IPlist_apr1.txt &
第二天我的辅助脚本(将创建更新的IP)将选择此文件格式为“IPlist_apr2.txt”的其他IP集合 在第三天 - IPlist_apr3.txt ...它将每天在CWD上记录$ 1.log。
同样这个过程继续,我实际上看起来我的ping脚本应该作为第一个参数逐日处理列表。
我的实际脚本的片段。
t=10m
ip=$1 #### specify the file having IP's
while sleep $t
do
if ping -c1 $ip >/dev/null 2>&1; then
echo "`date +%H:%M`: $ip is up";
else
echo "`date +%H:%M`: $ip is down";
fi >>$1.log;
done
答案 0 :(得分:0)
您需要从
命名的文件中读取 IP地址。 while IFS= read -r ipaddr; do
if ping -c1 "$ipaddr"; then
status=up
else
status=down
fi
printf '%s: %s is %s\n' "$(date +%H:%M)" "$ipaddr" "$status"
done < "$1"
请注意,这会运行一批ping,然后退出。呼叫者应负责睡10分钟并为输入指定正确的文件名。