【发布时间】:2018-03-19 10:08:57
【问题描述】:
最近刚开始使用 bash 进行编程,遇到了 GNU Parallel,这正是我的项目所需要的。 有一个基本的循环脚本,用于循环遍历 ip 列表并 ping 一次。带有 ip 的列表会不断更新,由另一个脚本驱动。
对于多线程,我想使用 GNU Parallel。
我的想法是运行 10 个 Parallel 实例,每个实例将从列表中捕获一个 ip,将其插入 curl 命令并将其从列表中删除,因此其他实例不会拾取它。
#! /bin/bash
while true; do
while read -r ip; do
curl $ip >> result.txt
sed -i '1,1 d' iplist
done < ipslist
done
我不确定,运行 bash 脚本的正确方法是什么,在这种情况下,我能找到的每个解决方案都无法正常工作,事情变得一团糟。 我有一种感觉,这一切都可以用一行来完成,但是,出于我自己的原因,我更喜欢将它作为 bash 脚本运行。 将不胜感激任何帮助!
【问题讨论】:
-
您是否使用它来检查哪些主机已启动并正在服务?也许使用
nmap更容易,而不是自己编写。我不确定nmap是否真的可以执行 HTTP 请求,但只需检查 80/TCP 是否打开就足够了。 -
感谢您的建议,我知道nmap和其他工具的至高无上,对于许多任务,但是,对于这个项目,我需要使用curl
标签: bash curl gnu-parallel