Como se puede ejecutar un script en Raspberry desde terminal Linux

Iniciado por mario290386, 9 Junio 2018, 21:17 PM

0 Miembros y 1 Visitante están viendo este tema.

mario290386

Holaa a todos!! :D necesito por favor que alguien me eche una mano pues no encuentro la solución de un comando que me esta volviendo loco y apenas hay información en la red de como llevarlo a cabo.

Necesito realizar un script que sea capaz de ejecutar tareas en linux (ubuntu) para posteriormente conectarse a una Raspberry mediante SSH y ejecutar un determinado script dentro de la raspberry y al terminar volver al  entorno de ubuntu.

Puede parecer lioso pero es sencillo, pongo un  ejemplo:

En linux he creado un script llamada "prueba.sh" que contiene lo siguiente:

#!/bin/bash
sshpass -p contraseña1 ssh pi@192.168.1.40


Con esto lo que hago es acceder a la Raspberry sin que me pida el password, hasta ahí bien.
Pero una vez dentro de la conexión con la Raspberry no consigo desencadenar los siguientes comandos del script, en este caso he intentado mandarle el comando para que se actualice nada mas entrar:

#!/bin/bash
sshpass -p contraseña1 ssh pi@192.168.1.40

sudo apt-get update

exit ssh


He probado colocando "&&" o colocando "echo" delante de las instrucciones pero no funciona.

La idea es que con un mismo script desde linux poder enviar ficheros a la raspberry y ademas ejecutar comandos dentro para hacerlo todo de forma automatizada.
No se si lo mas correcto seria usar protocolo SCP, ya que desde windows con el programa WinSCP si que conseguía realizar estas tareas.

Muchas gracias y espero obtener alguna solución.




mario290386

Hola Rave1996, agradezco tu aporte pero no es lo que busco, lo que puse en mi script sobre actualizaciones es solo un ejemplo, en realidad necesito enviar todo tipo de comandos.
El problema que tengo es que no se como hacer que la raspberry ejecute comandos que yo mismo le voy enviando de forma remota estando logueado en una maquina linux.

Esta claro que podria hacer un script para raspberry y meterselo previamente para que al arrancar lo auto ejecutara pero esto no me sirve ya que yo necesito mandarle los comandos a tiempo real desde mi ordenador linux, ademas la proxima vez que entre de forma remota a la raspberry le mandaria otros comandos distintos.

Gracias.


mario290386

Hola A.I, gracias por la pista, pero te aseguro que en español no había nada y la verdad que me he sorprendido al ver que habian muchas paginas en ingles con la solución.
Por si a alguien le puede servir dejo la solucion de 2 formas distintas:
Hola ya he descubierto la forma de hacerlo después de leer decenas de foros en ingles, y ademas sé 2 métodos:

La primera forma es de manera directa

sshpass -p contraseña ssh pi@192.168.1.40 "cd home/usuario/; tar xzvf carpetacomprimida.tgz "


El segundo método que es el que más me gusta y es creando previamente un script .sh ejecutable que tendrá una serie de comandos, por ejemplo:

script_mandar.sh

cd /home/usuario/
tar xzvf carpetacomprimida.tgz.tar
sudo rm carpeta comprimida.tgz.tar
exit ssh


y ahora con este comando lanzo el script en la raspberry de manera automática y en menos de 5 segundos realiza todas las tareas.

sshpass -p contraseña ssh pi@192.168.1.40 "$(<script_mandar.sh)"

Gracias por la ayuda y espero que le pueda servir a alguien más.

srWhiteSkull

Cita de: mario290386 en 10 Junio 2018, 21:56 PM
Hola A.I, gracias por la pista, pero te aseguro que en español no había nada y la verdad que me he sorprendido al ver que habian muchas paginas en ingles con la solución.
Por si a alguien le puede servir dejo la solucion de 2 formas distintas:
Hola ya he descubierto la forma de hacerlo después de leer decenas de foros en ingles, y ademas sé 2 métodos:

La primera forma es de manera directa

sshpass -p contraseña ssh pi@192.168.1.40 "cd home/usuario/; tar xzvf carpetacomprimida.tgz "


El segundo método que es el que más me gusta y es creando previamente un script .sh ejecutable que tendrá una serie de comandos, por ejemplo:

script_mandar.sh

cd /home/usuario/
tar xzvf carpetacomprimida.tgz.tar
sudo rm carpeta comprimida.tgz.tar
exit ssh


y ahora con este comando lanzo el script en la raspberry de manera automática y en menos de 5 segundos realiza todas las tareas.

sshpass -p contraseña ssh pi@192.168.1.40 "$(<script_mandar.sh)"

Gracias por la ayuda y espero que le pueda servir a alguien más.

Cualquiera que conozca linux o haya trabajado lo suficiente con linux sabe que se puede hacer eso. Haces una búsqueda así y obtienes miles de resultados en español que te enseñan hacerlo :

https://www.google.es/search?q=linux+remoto+ssh&oq=linux+remoto+ssh&aqs=chrome..69i57j0l5.3536j1j7&sourceid=chrome&ie=UTF-8