Можно завернуть в shell'овский цикл, построчно проходясь по файлу и подставляя строки как переменные в команду.
cat hosts.txt \
| while read line; do \
Terrapin-Scanner --connect $line; \
done
Из минусов - много букв + итерируешься только последовательно, без всякой параллельности / асинхронности
Ещё вариант, использовать загадочный
xargs, "построчно" проходящий по вводу (stdin) или файлу, а после подставляющий строки как из цикла выше.
xargs -a hosts.txt -P 5 -I HOST \
Terrapin-Scanner --connect HOST
Через
-I HOST определил "переменную" для строк из ввода, а с помощью -P 5 заставил запускать сканеры в 5 процессах одновременно.Стоило нажать
Enter, как xargs прошёлся по строкам от cat и начал запускать до 5 процессов Terrapin сканера одновременно, просканировав хосты за считанные секунды.Этот же подход применим для любых других ситуациях, где нужно быстро распарсить и обработать построчные элементы.
#tricks #machineops
