Мне нужна помощь в написании цикла for для работы с ftp. Он должен получить свой ввод из текстового файла адресов. Скипту не нужно полностью подключаться, просто покажите, работает ли хост или нет. что я получил так далеко:

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

Я знаю, что должен быть правильный способ написать это.

2 ответа2

3

Ну, если вам не нужно подключаться, похоже, вам нужно сканировать, если порт открыт. Затем используйте сканер портов, например, nmap:

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

Пояснения по параметрам взяты из краткого описания параметров:

-iL <inputfilename>: ввод из списка хостов / сетей
-p <port ranges>: проверять только указанные порты

0

Обычно для этого приложения используется команда ping:

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

Это может быть бесполезно, если хост фильтрует эхо-запрос. Решение nmap, опубликованное @LatinSuD, более эффективно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .