Casi todos los usuarios de Raspberry Pi se enfrentan a este problema. Tiene una Raspberry Pi ejecutándose en casa y desea ejecutar un comando en ella. El problema es que estás fuera de tu casa, en tu red móvil y no tienes forma de acceder a tu Pi. Puede obtener una dirección IP estática o utilizar uno de los servicios de 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 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 direcciones 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 que funcione.
- Una cuenta en IFTTT.com.
- Una cuenta de Dropbox.
Empezando
Configurar la receta IFTTT
Usaremos IFTTT para distribuir comandos enviados por correo electrónico a Dropbox. Después de configurar una cuenta IFTTT, tendrá que utilizar el "Ejecute comandos bash en Raspberry Pi por correo electrónico ”receta. Simplemente, vaya a esta receta IFTTT y haga clic en Agregar.
Configurar el cargador de Dropbox
Nosotros necesitamos Cargador de Dropbox - 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 tu Raspberry Pi, obtener el software de prerrequisito rizo y wget. Probablemente ya los tengas instalados, pero los instalaremos por si acaso:
[código fuente] sudo apt install wget curl [/ código fuente]
2. Crea una carpeta donde lo configuraremos. Aquí, he creado un directorio llamado raspi_email
en mi carpeta de inicio:
[código fuente] mkdir ~ / raspi_email
cd ~ / raspi_email [/ código fuente]
3. Consigue el Secuencia de comandos de Dropbox Uploader de GitHub, y marcarlo como ejecutable:
[código fuente] wget https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh
chmod + x ./dropbox_uploader.sh[/sourcecode]
4. Ejecutar la dropbox_uploader.sh
texto. Verá una salida como esta:
5. Ahora necesitas crear una aplicación de Dropbox. Inicie sesión en Dropbox, vaya a esta URL, donde verá una pantalla que se ve así:
6. Como en la imagen de arriba, primero elija el API de Dropbox, luego seleccione Dropbox completo en el tipo de acceso necesario. Finalmente, Nombre tu aplicación lo que quieras.
7. Una vez que su nueva aplicación se haya creado correctamente, desplácese hacia abajo hasta OAuth2 sección, y haga clic en el Generar botón para generar un token de acceso. Ahora verá un token de acceso generado donde el Generar fue el botón. Copie este token, péguelo en su terminal y presione Ingresar:
8. A verifique que su cuenta esté funcionando, ejecutar el comando ./dropbox_uploader.sh lista
- debería ver una lista de los archivos en su cuenta de Dropbox.
Configurar Raspi Runner
En su Raspberry Pi, descargue el Secuencia de comandos de Raspi Runner en el raspi_email
carpeta que creamos anteriormente:
[código fuente] cd ~ / raspi_email
wget https://raw.github.com/enkydu/Raspi_Runner/master/raspi_runner.sh[/sourcecode]
Haz el guión ejecutable, y ejecutarlo:
[código fuente] 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, entrar en el camino para usted Casa directorio (probablemente / inicio / pi /
), Seguido por el nombre de la carpeta en el que descargó el dropbox_uploader.sh
texto. Si siguió esta guía palabra por palabra, ingresará / home / pi / raspi_email
aquí.
Configurar Crontab
Una vez que los conceptos básicos están en su lugar, es necesario programar el funcionamiento de Raspi Runner. Por ejemplo, puede configurarlo para que busque correos electrónicos cada 5 minutos. crontab para esto. En su Raspberry Pi, ejecute:
[código fuente] crontab -e [/ código fuente]
En la parte inferior del archivo, agregue la siguiente línea:
[código fuente] * / 5 * * * * /home/pi/raspi_email/raspi_runner.sh> / dev / null 2> & 1 [/ código fuente]
Por supuesto, en el ejemplo anterior, reemplazar Pi con su nombre de usuario, y raspi_email con la carpeta que colocó el raspi_runner.sh
script en. Ahora guarde su crontab.
Uso
Simplemente envíe un correo electrónico con los comandos que desea ejecutar en su Pi a [email protected] desde el 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 cerrar:
Después de la cantidad de retraso que estableció en su crontab, la 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.