Cómo ejecutar comandos en Raspberry Pi por correo electrónico

Casi todos los usuarios de Raspberry Pi se enfrentan a este problema. Tienes una Raspberry Pi ejecutándose en casa y quieres ejecutar un comando en ella. El problema es que se encuentra fuera de su hogar, en su red móvil y no tiene forma de acceder a su Pi. Puede obtener una dirección IP estática o utilizar uno de los servicios DNS dinámicos para permitir el acceso a su red doméstica. Sin embargo, eso es demasiado inconveniente para la mayoría de las personas y requiere demasiado esfuerzo para obtener poca ganancia. Además, abre tu Raspberry Pi a ataques de fuerza bruta, ya que el puerto SSH ahora está expuesto al mundo.

La buena noticia es que existe un método más conveniente y más seguro: simplemente envíe por correo electrónico los comandos que desea ejecutar en su Raspberry Pi. De esta manera, todo lo que necesita es un cliente de correo electrónico y una conexión a Internet que funcione en su Pi. Sin inicios de sesión y sin IP estáticas. Además, este método no solo funciona con Raspberry Pi, sino con cualquier distribución de Linux con el shell Bash y cURL instalados. ¿Suena bien? Esto es lo que necesita para configurarlo:

Requisitos

  • Una Raspberry Pi con una conexión a Internet en funcionamiento.
  • Una cuenta en IFTTT.com.
  • UNA Dropbox cuenta.

Empezando

Configurar la receta IFTTT

Usaremos IFTTT para distribuir los comandos enviados por correo electrónico a Dropbox. Después de configurar una cuenta IFTTT, tendrá que usar la receta “Ejecutar comandos bash en Raspberry Pi por correo electrónico”. Simplemente, ve a esto Receta IFTTTy haga clic en Agregar.

ifttt-receta-para-ejecutar-comandos-en-pi-por-correo electrónico

Configurar el cargador de Dropbox

Necesitamos Dropbox Uploader, un programa de línea de comandos que puede cargar, descargar, enumerar o eliminar archivos de Dropbox. A continuación se explica cómo configurarlo:

1. En su Raspberry Pi, obtenga el software prerrequisito rizo y wget. Probablemente ya los tengas instalados, pero los instalaremos por si acaso:

[sourcecode]sudo apt install wget curl[/sourcecode]

2. Cree una carpeta donde lo configuraremos. Aquí, he creado un directorio llamado raspi_email en mi carpeta de inicio:

[sourcecode]mkdir ~ / raspi_email
cd ~ / raspi_email[/sourcecode]

3. Obtén el script de Dropbox Uploader de GitHub y márcalo como ejecutable:

[sourcecode]wget https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh

chmod + x ./dropbox_uploader.sh[/sourcecode]

4. Ejecute el script dropbox_uploader.sh. Verá una salida como esta:

cargador de dropbox

5. Ahora necesitas crear una aplicación de Dropbox. Inicie sesión en Dropbox, vaya a esta URL, donde verá una pantalla similar a esta:

dropbox-api

6. Como en la imagen de arriba, primero elija la API de Dropbox, luego seleccione Full Dropbox en el tipo de acceso necesario. Finalmente, nombre su aplicación como quiera.

7. Después de que su nueva aplicación se haya creado correctamente, desplácese hacia abajo hasta la sección OAuth2 y haga clic en el botón Generar para generar un token de acceso. Ahora verá un token de acceso generado donde estaba el botón Generar. Copie este token, péguelo en su terminal y presione Entrar:

dropbox-uploader2

8. Para verificar que su cuenta está funcionando, ejecute el comando ./dropbox_uploader.sh list; debería ver una lista de los archivos en su cuenta de Dropbox.

Configurar Raspi Runner

En su Raspberry Pi, descargue el script Raspi Runner en la carpeta raspi_email que creamos anteriormente:

[sourcecode] cd ~ / raspi_email

wget https://raw.github.com/enkydu/Raspi_Runner/master/raspi_runner.sh[/sourcecode]

Haga que el script sea ejecutable y ejecútelo:

[sourcecode]chmod + x ./raspi_runner.sh

./raspi_runner.sh[/sourcecode]

Ahora verá un mensaje como la imagen de abajo. Cuando el script solicita la ruta completa a su Cargador de Dropbox, ingrese la ruta a su directorio de inicio (probablemente / home / pi /), seguido del nombre de la carpeta en la que descargó el script dropbox_uploader.sh. Si siguió esta guía palabra por palabra, ingresará / home / pi / raspi_email aquí.

raspi-corredor

Configurar Crontab

Una vez que los conceptos básicos están en su lugar, es necesario programar la ejecución de Raspi Runner. Por ejemplo, puede configurarlo para que compruebe los correos electrónicos cada 5 minutos. Usaremos crontab para esto. En su Raspberry Pi, ejecute:

[sourcecode]crontab -e[/sourcecode]

En la parte inferior del archivo, agregue la siguiente línea:

[sourcecode]* / 5 * * * * /home/pi/raspi_email/raspi_runner.sh> / dev / null 2> & 1[/sourcecode]

Por supuesto, en el ejemplo anterior, reemplace Pi con su nombre de usuario, y raspi_email con la carpeta en la que colocó el script raspi_runner.sh. Ahora guarde su crontab.

Uso

Simplemente envíe un correo electrónico con los comandos que desea ejecutar en su Pi a [email protected] de la dirección de correo electrónico que utilizó para configurar su cuenta IFTTT. El cuerpo del correo electrónico contendrá el comando. Puede agregar cualquier asunto que desee al correo electrónico, pero se recomienda que agregue uno. En el siguiente ejemplo, estoy ordenando a mi Raspberry Pi que se apague:

correo electrónico

Después de la cantidad de retraso que configuró en su crontab, el raspi_runner.sh ejecutará y ejecutará el comando contenido en su correo electrónico.

VEA TAMBIÉN: Cómo configurar y comenzar con Raspberry Pi 3 (Guía de inicio)

Ejecute comandos de forma remota en su Raspberry Pi usando IFTTT

Así es como puede usar IFTTT, Dropbox y algo de magia de línea de comandos para ejecutar comandos de forma remota en su Raspberry Pi. Por supuesto, como se mencionó al principio, este método también funcionará con cualquier sistema Linux o similar a Unix con el shell Bash instalado.

Estén atentos para más consejos y trucos de Raspberry Pi en el futuro. Si tiene problemas para configurarlo o desea compartir algunos de sus propios trucos geniales de IFTTT con nosotros, asegúrese de escribirnos en la sección de comentarios a continuación.

Similar Posts

Leave a Reply

Your email address will not be published.