如何在 shell 脚本中确定 FTP 主机是否启动?

如何在 shell 脚本中确定 FTP 主机是否启动?

我需要帮助编写一个用于 ftp 的 for 循环。它需要从地址文本文件中获取输入。该脚本不需要完全连接,只需显示主机是否启动。我目前得到的结果:

while read p; do
  cat $p
done < /media/C2AF-FE98/ftpsites/list6.txt

我知道一定有一个正确的方式来写这个。

答案1

好吧,如果你不需要连接,那么看起来你需要扫描端口是否打开。然后使用端口扫描器,例如nmap

nmap  -iL /media/C2AF-FE98/ftpsites/list6.txt  -p 21

对取自选项摘要

-iL <inputfilename>:从主机/网络列表输入
-p <port ranges>:仅扫描指定端口

答案2

对于此应用程序,通常使用 ping 命令:

for url in `cat /media/C2AF-FE98/ftpsites/list6.txt`
do
  ping -q -c1 $url || die "$url host is down."
done

如果主机过滤了 echo 请求,那么这个方法就没用了。@LatinSuD 发布的 nmap 解决方案效率更高。

相关内容