Script: copiar y reproducir archivos de Raspberry Pi en nuestro PC

El escenario es el siguiente: Raspberry Pi con sensor PIR que graba fragmentos de vídeo cuando detecta movimiento, y necesidad de revisar los vídeos sin tener que desmontar la Raspberry Pi ni añadir pantalla ni teclado. Los pasos que se describirán son igualmente útiles para copiar cualquier tipo de archivo de la Raspberry Pi al ordenador local.

IMG_20160501_121431

Para mayor comodidad, vamos a crear un script que ejecute las siguientes acciones:

  1. Copiar archivos de vídeo de Raspberry Pi al ordenador local.
  2. Eliminar los archivos de vídeo de Raspberry Pi, para liberar espacio.
  3. Reproducir los vídeos copiados en VLC.

El primer paso es crear un archivo de texto con la extensión .sh, lo cual indica que se trata de un bash script. En mi caso he llamado al archivo “Videos.sh” y lo he ubicado en el Escritorio.

Editamos el archivo con un editor de texto (Leafpad, Gedit…) e incluimos el siguiente contenido:

#!/bin/bash

scp pi@192.168.1.133:~/*.h264 ~/Escritorio/Videos

ssh pi@192.168.1.133 ‘rm ~/*.h264′

vlc ~/Escritorio/Videos/*.h264

En cada caso será necesario adaptar los comandos al contexto:

· Comando 1: scp pi@192.168.1.133:~/*.h264 ~/Escritorio/Videos

scp es la orden para copiar archivos vía ssh

En “pi@192.168.1.133” debe sustituirse “pi” por el nombre de usuario que accede a la Raspberry Pi (por defecto es “pi”), y los números de la IP deben ser los asignados a la Raspberry Pi en tu red local (la aplicación Fing de Android ayuda a identificarlo).

Con “~/*.h264″ le indico que copie todos los archivos de extensión .h264, y mediante “~/” le hago saber que se encuentran en el directorio Home de la Raspberry Pi. Si tenemos los archivos en otro lugar, lo debemos especificar.

Con “~/Escritorio/Videos” indico que los archivos deben ser copiados en la carpeta local Videos de mi escritorio. Algunas distribuciones mantienen el nombre en inglés “Desktop” para el escritorio.

· Comando 2: ssh pi@192.168.1.133 ‘rm ~/*.h264′

Los comentarios de los párrafos anteriores son aplicables al comando “ssh pi@192.168.1.133 ‘rm ~/*.h264′”; debemos tener en cuenta el nombre de usuario indicado (“pi” en el ejemplo), la IP de la Raspberry Pi, la ubicación de los archivos en la Raspberry Pi (“Home” en el ejemplo) y el tipo de archivos (*.h264 en el ejemplo).

La diferencia en este comando es la ejecución de “rm”, con el fin de eliminar los archivos de la Raspberry Pi después de haber sido copiados en el comando anterior.

· Comando 3: vlc ~/Escritorio/Videos/*.h264

Por último, puestos a automatizar, pedimos a VLC que reproduzca los vídeos. Tan solo tendremos que modificar la ruta hacia esos vídeos, que en el caso mostrando se copian a la carpeta “Videos” del escritorio.

Si en nuestra máquina el formato de vídeo h264 nos da problemas, y acostumbramos a convertir los archivos antes de reproducirlos, podemos añadir una linea previa a la ejecución de VLC con el comando que utilizamos para la conversión.

Ahora solo queda convertir el archivo de texto que hemos creado en ejecutable: clicamos con el botón derecho sobre él y accedemos al diálogo “Propiedades”, y en la pestaña “Permisos” indicamos que se trata de un archivo ejecutable.

De esta manera ya cumplimos el objetivo de automatizar la tarea. Al ejecutar el script, se nos pregunta cada vez la contraseña del usuario para acceder a la Raspberry Pi. Indagando he encontrado una solución para obviar este paso: crear dos archivos que guardan estas contraseñas.

En el ordenador local ejecutamos desde una terminal:

ssh-keygen –t rsa

El comando nos preguntará por la ubicación para guardar los archivos y por una contraseña: presionamos enter en ambos casos sin introducir valor ninguno. Los archivos serán creados en la carpeta oculta .ssh de nuestro directorio de usuario. Debemos copiar el archivo id_rsa.pub dentro de la misma carpeta ubicada en la Raspberry Pi (si no existe, la creamos). Y una vez copiado, lo renombramos a authorized_keys2.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s