Совсем недавно начал программировать на bash и наткнулся на GNU Parallel, это как раз то, что мне нужно для моего проекта. Имейте базовый сценарий цикла, который предназначен для циклического просмотра списка IP-адресов и пинга каждый раз. Список с 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 открыт. - person Thomas   schedule 19.03.2018