Мне нужен сценарий, чтобы проверить, доступен ли telnet на сервере. У меня есть аналогичный сценарий для Linux, но он не работает в HPUX.
Сценарий Linux,
telnet `"hostname"` < "dummy.txt" 2>&1 > telnet.txt ### passsing a dummy file ##
grep Escape telnet.txt >> telnet.txt
if [ $? = 0 ]; then
echo "Telnet is available" > telnet.txt
else
echo "Telnet is not available" > telnet.txt
fi
Тот же скрипт на Hpux
telnet `"hostname"` < "dummy.txt" 2>&1 > telnet.txt ### passsing a dummy file ##
grep Escape telnet.txt >> telnet.txt
if [ $? = 0 ]; then
echo "Telnet is available" > telnet.txt
else
echo "Telnet is not available" > telnet.txt
fi
Эта команда не завершается, см. Ниже:
# telnet `"hostname"` < "dummy.txt" 2>&1 > telnet.txt
Telnet TERMINAL-SPEED option ON
Эта опция "Telnet TERMINAL-SPEED ON" останавливает завершение сценария. Необходимые данные зафиксированы в telnet.txt
:
# cat telnet.txt
Trying...
Connected to ussltcsnh5001.solutions.glbsnet.com.
Escape character is '^]'.
Local flow control on
HP-UX ussltcsnh5001 B.11.31 U ia64 (ta)
login:
В этом dummy.txt есть имя пользователя и пароль? Похоже, вы застряли в приглашении входа в систему, поэтому команда не прерывается. Вам необходимо передать имя пользователя и пароль или иным образом выйти из открытого сеанса.
Попробуйте этот пример, который завершит сеанс telnet через две секунды. Вы можете увеличить время ожидания здесь, если не получаете нужный текст.
ПРИМЕР:
telnet `"hostname"` < "dummy.txt" 2>&1 > telnet.txt &
# Get its PID
PID=$!
# Wait for 2 seconds
sleep 2
# Kill it
kill $PID
grep Escape telnet.txt >> telnet.txt
if [ $? = 0 ]; then
echo "Telnet is available" > telnet.txt
else
echo "Telnet is not available" > telnet.txt
fi