从文件ping多个IP地址的Linux bash脚本
我有一个包含多个主机和IP的文件,格式如下:从文件ping多个IP地址的Linux bash脚本,linux,bash,Linux,Bash,我有一个包含多个主机和IP的文件,格式如下: alpha, 192.168.1.1 beta, 192.168.1.2 gamma, 192.168.1.3 我正在尝试创建一个脚本,其中包含以下内容: “ping主机名alpha” 然后跳到列表中的下一个ip。 我不想要整个剧本,只是一些建议 谢谢, 亚历克斯我读了read的那行。您可能还想给ping一个选项,告诉它ping多少次。例如,大多数Linux系统的默认设置是永远ping,这在您的情况下似乎不太合适。我读了read中的行。您可能还想
alpha, 192.168.1.1
beta, 192.168.1.2
gamma, 192.168.1.3
我正在尝试创建一个脚本,其中包含以下内容:
“ping主机名alpha”
然后跳到列表中的下一个ip。
我不想要整个剧本,只是一些建议
谢谢,
亚历克斯我读了
read
的那行。您可能还想给ping
一个选项,告诉它ping多少次。例如,大多数Linux系统的默认设置是永远ping,这在您的情况下似乎不太合适。我读了read
中的行。您可能还想给ping
一个选项,告诉它ping多少次。例如,大多数Linux系统的默认设置是永久ping,这在您的情况下似乎不太合适。试试这个
#!/bin/bash
IPLIST="path_to_the_Ip_list_file"
for ip in $(cat $IPLIST)
do
ping $ip -c 1 -t 1 &> /dev/null
if [ $? -ne 0 ]; then
echo $ip ping faild;
else
echo $ip ping passed;
fi
done
试试这个
#!/bin/bash
IPLIST="path_to_the_Ip_list_file"
for ip in $(cat $IPLIST)
do
ping $ip -c 1 -t 1 &> /dev/null
if [ $? -ne 0 ]; then
echo $ip ping faild;
else
echo $ip ping passed;
fi
done
如果在输入字段分隔符中添加逗号,将有助于分析以下行:
IFS=$IFS,
while read name ip; do
echo -n "Pinging hostname $name..."
ping -c2 "$ip" &>/dev/null && echo success || echo fail
done < /tmp/hosts
IFS=$IFS,
读取名称ip时;做
echo-n“ping主机名$name…”
ping-c2“$ip”&>/dev/null&&echo成功| | echo失败
完成
如果在输入字段分隔符中添加逗号,将有助于分析以下行:
IFS=$IFS,
while read name ip; do
echo -n "Pinging hostname $name..."
ping -c2 "$ip" &>/dev/null && echo success || echo fail
done < /tmp/hosts
IFS=$IFS,
读取名称ip时;做
echo-n“ping主机名$name…”
ping-c2“$ip”&>/dev/null&&echo成功| | echo失败
完成
我可能会晚一点去参加聚会,但是你呢?使用-f从文件中读取(需要sudo),或使用<(如手册页上建议的那样)导入文件。它不会告诉你“ping alpha”,但会很快告诉你是否能与主持人取得联系。我可能会晚一点去参加聚会,但是你呢?使用-f从文件中读取(需要sudo),或使用<(如手册页上建议的那样)导入文件。它不会告诉您“ping alpha”,但会快速告诉您是否可以与主机联系。您可以使用:
如果对您很重要,您也可以删除该逗号:
$ awk '{sub(/,/,"");print "Pinging hostname "$1; system("ping -c 3 "$2) }' ips
Pinging hostname alpha
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
您可以使用:
如果对您很重要,您也可以删除该逗号:
$ awk '{sub(/,/,"");print "Pinging hostname "$1; system("ping -c 3 "$2) }' ips
Pinging hostname alpha
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
格式都在一行?不,每行包含一条记录,由
read
命令上的逗号分隔<代码>读取时-a words格式全部在一行?否,每行包含一条记录,由读取
命令上的逗号分隔<代码>读取时-a words不会真正解析第二个字段。@Renjith检查您正在为$中的ip ping什么$(cat ips);不要重复$ip;done
没有真正解析第二个字段。@Renjith检查您正在ping什么$用于$(cat ips)中的ip;不要重复$ip;完成
谢谢你的提示,@Aleks-Daniel。谢谢你的提示,@Aleks-Daniel。谢谢你的想法。我知道这是可能的使用fping,但我需要创建一个学习目的的脚本。再次感谢!谢谢你的主意。我知道这是可能的使用fping,但我需要创建一个学习目的的脚本。再次感谢!