Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从文件ping多个IP地址的Linux bash脚本_Linux_Bash - Fatal编程技术网

从文件ping多个IP地址的Linux bash脚本

从文件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中的行。您可能还想

我有一个包含多个主机和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
中的行。您可能还想给
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,但我需要创建一个学习目的的脚本。再次感谢!