Я немного растерялся.Я создал скрипт, который начинается с извлечения данных из файла CSV.Каждая строка содержит IP-адрес и несколько портов для тестирования.Цель состоит в том, чтобы проверить, что возможно подключиться к каждому серверу (под данным IP) на определенных портах.Для проверки используется следующий код:
nc -w 3 -v $ipValeur >> retour.txt 2>&1
Тем не менее, он не работает и возвращает Connection Timed out
.Это странно.Фактически, если я запускаю команду telnet
из терминала, она работает.Тем не менее, цель состоит в том, чтобы проверить, может ли сервер быть подключен ко многим другим.Итак, если используется telnet
, это будет очень долго (один или два дня?) ...
Итак, я ищу способ, позволяющий автоматически проверять доступ с одного сервера на тридцатьдругие на нескольких портах.Вы можете найти код, который на самом деле используется в Как продолжить следующую итерацию, если в Bash возникает ошибка .
Спасибо за вашу помощь.
Решение
#!/bin/bash
INPUT_FILE=$1
while IFS='' read -r line || [ -n "$line" ]; do
IFS=';' read -ra cvsline <<<${line}
HOSTNAME=${cvsline[0]}
ports=("${cvsline[@]:1}")
for port in ${ports[*]}; do
echo -n "Verification ${HOSTNAME}:${port}..."
echo 'QUIT' | nc -w 3 -v "${HOSTNAME}" "${port}" >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "OK"
else
echo "KO"
fi
done
done < $INPUT_FILE
Vinz