У меня есть сценарий te lnet ожидаемый, используемый только для проверки работоспособности сервера.
#!/usr/bin/expect
set IP 192.168.5.100
catch {spawn -noecho telnet $IP}
set timeout 3
expect {
timeout
{ send_user "Telnet timed out waiting for $IP\n" ; exit }
"onnection refused"
{ send_user "Connection was refused to $IP\n" ; exit }
"No route"
{ send_user "System $IP is unknown\n" ; exit}
"login:"
}
send_user "Success\n" ; exit
Это работает отлично, и я вызываю его из другого сценария bash, чтобы сохранить сообщение в файл журнала. Проблема в том, что на выходе слишком много информации, например, если сервер недоступен:
# ./checkconn.expect
Trying 192.168.5.101...
telnet: connect to address 192.168.5.101: No route to host
System 192.168.5.101 is unknown
Если сервер доступен:
Trying 192.168.5.100...
Connected to 192.168.5.100.
Escape character is '^]'.
--- Unauthorised access prohibited ---
This is a closed-access system. If you do not have permission
to access this system, then log off now. If you remain logged on
you consent to monitoring of your actions.
z1 login: Success
Так что я бы хотел сохранить в журнале ТОЛЬКО сообщение, отправленное сценарием ожидаемого, как в приведенном выше примере «Система 192.168.5.101 неизвестна»
Как я могу это сделать? Спасибо, Лукас