Estou trabalhando com o memcache de telnet e vou usá-lo como exemplo, mas suponho que ele possa ser estendido em outros assuntos. No shell, o processo é
telnet <ip> <port> #this start the subroutine
connected to <ip>
Escape charecter ...
flush_all #My command
OK #the response /ERROR in case it fails
quit #my command
Connection closed by foreign host.
$ echo $?
1
Eu quero receber a mensagem OK / ERROR, mas não sei como. Eu vou executar o código em um script:
#!/bin/sh
ssh user@ip '
$(
(sleep 2;
FILE="$HOME/example.log"
DATE=$(date "+%d-%m-%Y %H:%M:%S")
echo flush_all
if [ $? == 0 ]; then
RES="Success "
else
RES="Fail "
fi;
echo "$DATE - $RES" >> $FILE;
sleep 2;
echo quit;
) | telnet <ip> 11211);' 2>/dev/null
Mas sempre retorna um sucesso, mesmo se o comando for añskjdflña, e eu não sei como obter a diferença entre OK e ERROR.
Tags ssh shell-script