Linux/Unix Shell Scripting - AYUDA Script temperatura

 
Vista:

AYUDA Script temperatura

Publicado por V. Guillermo viguimassal@gmail.com (5 intervenciones) el 01/04/2019 15:14:25
Hola
Necesito ayuda con un script, vaya por delante que soy muy novato en esto y agradeceria toda la ayuda posible, bueno voy al grano.
Mi script lo que hace es:
conectarse por ssh a unas RB con IPs fijas desde un archivo .txt
logueo automatico en la RB
toma de temperatura, fecha y hora.
exportar datos obtenidos a un fichero .txt

Hasta aqui bien, el problema lo tengo cuando una de las RB esta apagada y no responde la conexion SSH entonces lo que ocurre es que el Script acaba, con un Time out de la conexion SSH.

Lo que quiero es que si no hay conexion con esa RB continue con la siguiente IP del listado del archivo .txt

Muchas Gracias por adelantado

RB= Raspberry.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

AYUDA Script temperatura

Publicado por V. Guillermo viguimassal@gmail.com (5 intervenciones) el 01/04/2019 20:12:21
aqui dejo el Script

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#! /bin/bash 
 
 
 
echo "ESTE PROCESO TARDARA VARIOS MINUTOS POR FAVOR ESPERE..."
echo "CONECTANTO..."
 
SERVER="ip.txt"
ARCHIVO="/home/pi/Desktop/temperaturas.txt"
 
for HOST in $(cat $SERVER); do sshpass -p "raspberry" ssh -o StrictHostKeyChecking=no pi@$HOST "date;
    /opt/vc/bin/vcgencmd measure_temp"; done >>$ARCHIVO
 
 
echo "******** FIN DEL PROCESO ********"
echo
echo "REVISE ARCHIVO temperaturas.txt"
echo
read -p "Presione una tecla para continuar..."







he pensado en una posible solucion que seria antes de hacer la conexion ssh mandar un ping si hay respuesta ejecutar la conexion ssh si no la hay seguir con la siguiente ip del archivo ip.txt

esto seria posible?
como?

GRACIAS...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de barna_rasta
Val: 38
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

AYUDA Script temperatura

Publicado por barna_rasta (42 intervenciones) el 02/04/2019 10:12:04
Buenos dias Guillermo,
prueba con esto:

1
2
3
4
5
6
7
8
9
10
a='8.8.8.8'
b='80.58.0.33'
c='80.58.61.254'
nodo1=$(ping -c2 $a >/dev/null );resnodo1=$?
nodo2=$(ping -c2 $b >/dev/null );resnodo2=$?
nodo3=$(ping -c2 $c >/dev/null );resnodo3=$?
#### si la respuesta es " 0 " esta activo
echo 'NODO 1 ',$resnodo1
echo 'NODO 2 ',$resnodo2
echo 'NODO 3 ',$resnodo3
A tener encuenta que hay muchos routers que tienen ICMP (ping) bloquedao.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA Script temperatura

Publicado por Tom (332 intervenciones) el 02/04/2019 12:10:13
Incluso aunque el ping esté abierto en el router, debe estar permitido también en el RB.
Y además tiene que estar levantado el daemon sshd. No veo el procedimiento del ping 100% fiable.

Lo que no entiendo muy bien es que tu bucle finalice a causa del error, debería continuar.
Yo acabo de probar esto (uso una IP válida pero inexistente) y el for continúa aunque haya un timeout:

1
2
3
4
5
6
$ for I in 0 1 2 3; do ssh -o ConnectTimeout=1 172.30.29.124; done
ssh: connect to host 172.30.29.124 port 22: Connection timed out
ssh: connect to host 172.30.29.124 port 22: Connection timed out
ssh: connect to host 172.30.29.124 port 22: Connection timed out
ssh: connect to host 172.30.29.124 port 22: Connection timed out
$
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA Script temperatura

Publicado por V. Guillermo viguimassal@gmail.com (5 intervenciones) el 02/04/2019 15:26:31
lo del ping es una solucion que se me ha ocurrido, no se si es viable ya digo el problema esta cuando la RB a la que solicito conexion ssh esta apagada es cuando me sale time out y como te digo acaba el bucle no se si tiene que ver el comando sshpass que hace el logueo automatico
o que al tomar las ips de un archivo.txt esta el problema ahi no se.


ya te digo que el Script funciona bien hasta que encuantra un RB apagada


Gracias por contestar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA Script temperatura

Publicado por V. Guillermo viguimassal@gmail.com (5 intervenciones) el 02/04/2019 15:17:12
perdon se ha duplicado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA Script temperatura

Publicado por V. Guillermo (5 intervenciones) el 02/04/2019 15:18:35
pero esto entiendo que es un ping en esta caso a las direcciones a b yc yo lo que tengo es un archivo .txt donde tengo todas las ips , de lo que trato es poder editar el archicvo y cambiar ips añadir quitar sin tocar el Script no se si me explico
ya te digo que soy novato en esto
y gracias por contestar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA Script temperatura

Publicado por V.guillermo (1 intervención) el 02/04/2019 21:30:21
SOLUCIONADO
el problema estaba en mi paciencia y la casualidad las 2 últimas iOS del archivo txt estaban las RB apagadas y time out salía a los 2 o 3 min así que yo pensaba que se quedaba colgado
Solución bajar el tiempo de conexión de ssh y listo
Gracias Tom por ponerme sobre la pista
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar