Usando telnet en el script de shell


8

Uso el comando telnet para verificar si el puerto MySQL está respondiendo.

telnet 10.10.10.24 3306

Yo uso el carácter Ctrl para desconectar. Esto está funcionando como se esperaba. ¿Cómo uso este comando en el script de shell?


En realidad, haga el eco con nuevas líneas como Janne propone, y agregue un valor de tiempo de espera sensato con -w.
3molo

Respuestas:


12

Si solo está buscando verificar si el puerto está abierto, intente:

$ nc -zv 10.10.10.24 3306
Connection to localhost 3306 port [tcp/mysql] succeeded!

ncdevolverá 0 si el puerto está abierto y 1 si no lo está. Esto también es bastante útil para las secuencias de comandos. Omita el vinterruptor para mantenerlo en silencio:

if ! nc -z 10.10.10.24 3306
then
    do_something
fi

Gracias. Pero el modificador -z funciona en el servidor pero no en otro. ¿Necesito verificar la versión del comando nc?
shantanuo

Quizás. ¿Qué versión no funciona?
Cakemox

El modificador -z funciona correctamente. Me equivoqué, ignore el comentario anterior.
shantanuo


4

Si no tiene nc, puede usar las redirecciones de archivos especiales de bash:

head -1 < /dev/tcp/10.10.10.24/3306 >/dev/null && echo MySQL is on || echo MySQL is off


1

Este es mi script para casos específicos.

host=localhost
DATE=`date +%Y-%m-%d`
TIME=`date +%H%M%S`
LOG_OK=/tmp/telnet_ok
LOG_FAIL=/tmp/telnet_falha

for port in 80 25 22 443 110
do
if telnet -c $host $port </dev/null 2>&1 | grep -q Escape; then
  echo "$DATE $TIME  $port: Connected" >> $LOG_OK
else
  echo "$DATE $TIME $port : no connection" >> $LOG_FAIL
fi
done

http://fajlinux.com.br/2014/10/10/script-monitorando-via-telnet/


0

Usaría netcat y es '-w' en su lugar;

host: ~ usuario $ nc -w 1 1.2.6.1 3306
?
5.1.57-1 ~ dotdeb.1? WO`rA * L # h? B4z.pmT; i ~ ^; host: ~ usuario $ 

0

Aquí se explica cómo usar telnet en bash shell / expect

#!/usr/bin/expect
# just do a chmod 755 one the script
# ./YOUR_SCRIPT_NAME.sh $YOUHOST $PORT
# if you get "Escape character is '^]'" as the output it means got connected otherwise it has failed

set ip [lindex $argv 0]
set port [lindex $argv 1]

set timeout 5
spawn telnet $ip $port
expect "'^]'."
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.