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?
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?
Respuestas:
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!
nc
devolverá 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 v
interruptor para mantenerlo en silencio:
if ! nc -z 10.10.10.24 3306
then
do_something
fi
nc
es mucho mejor para uso no interactivo. Intenta algo como
echo -e "\n\n" | nc 10.10.10.24 3306
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
Para automatizar la secuencia de comandos telnet, debe utilizar esperar. Vea la página de inicio esperada .
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/
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 "'^]'."