Extraer vcards individuales de un único fichero

En ocasiones se plantean problemas que se pueden solucionar con una simple orden o con algún aplicativo. Pero también puede suceder que no te acuerdes de la orden y no quieras instalar software alguno. En ese caso es posible acudir a el siempre omnipresente bash.

Por ejemplo, en caso de que sea necesario obtener ficheros .vcf (vcard) individuales de un único archivo, y no que no queramos hacer uso de comandos ultracomplejos, podemos programar un sencillo script bash.

El siguiente script, por supuesto, se puede parametrizar, controlar errores, bla, bla, bla.

# Script que tomando como origen un único fichero .vcf, crea tantos archivos como vcards individuales 
# contenga. Hace uso de que el comienzo y final de cada contacto está acotado con una cadena.

# En VECES se almacena la candidad de vcards individuales
VECES=`grep -n 'END:VCARD' ~/scripts/svcards/10000.vcf | wc -l`

echo
echo Creando $VECES ficheros VCARD
echo

# Bucle que recorre las VCARDs.
# Con head se obtiene el primer vcard y con tail el resto que almacena en el mismo archivo
# origen.
i=0
while [  $i -lt $VECES ]; do
        echo Generando VCARD: $i
        PRIMER_FINAL=`grep -n 'END:VCARD' -m 1 ~/scripts/svcards/10000.vcf | cut -f1 -d':'`
        FIN=`wc -l ~/scripts/svcards/10000.vcf | cut -f1 -d' '`
        DIFF=`echo $FIN-$PRIMER_FINAL | bc`

        echo $PRIMER_FINAL
        echo $FIN
        echo $DIFF

        head -$PRIMER_FINAL ~/scripts/svcards/10000.vcf > $i.vcf
        tail -n $DIFF ~/scripts/svcards/10000.vcf > ~/scripts/svcards/10000aux.vcf
        cp --preserve ~/scripts/svcards/10000aux.vcf ~/scripts/svcards/10000.vcf

        let i+=1
done

echo
echo Generación de VCARDs finalizada

 

Encendido apagado de disco duro externo con Raspberry Pi II

openelec
openelec

 

 

Encendido apagado de disco duro externo con Raspberry Pi I

Una vez que la parte física está finalizada y probada con unos sencillos comandos, es el momento de hacer el uso del disco lo más sencillo posible.

El disco duro está conectado a un Raspberry Pi que tiene OpenElec instalado. OpenElec monta el sistema en “Read Only”, de manera que se hace complicada la modificación de la configuración. Para solucionar este contratiempo, utilizo otro Raspberry Pi, desde el cual le mandaré los comandos básicos ya explicados. Este Raspberry Pi (en adelante DomoPi) tiene instalado https://www.raspbian.org/.

En primer lugar voy a intentar gestionar el funcionamiento del sistema desde una pequeña web alojada en DomoPi. La idea es que desde la web se lance con un exec las ordenes a través de ssh. Para ello, es necesario mandar órdenes vía ssh y que no se solicite contraseña por parte del Raspberry Pi con OpenElec.

Para que no se pida la contraseña se deben realizar varios pasos:

  1. Generación de una llave RSA. Hay que tener en cuenta que el login se hace desde el usuario de nginx y por tanto este y los siguientes comandos tienen que lanzarse con esta identidad.
  2. Copiado de la llave pública en la máquina destino.
  3. A partir de este momento ya no se solicita contraseña.

Leer más Encendido apagado de disco duro externo con Raspberry Pi II

Encendido apagado de disco duro externo con Raspberry Pi I

openelec
OpenElec

Como ya va siendo hora de actualizar la fantástica smart tv, he aprovechado las entradas / salidas que proporciona Raspberry Pi para poder gestionar el encendido del disco duro que tiene asociado.

La idea es poder encender de manera remota el disco duro y ahorrar en consumo eléctrico y en desgaste de disco. Claro está, también es posible apagarlo después de su uso.

Para conseguir esta utilidad he extraído la fuente de alimentación original de la caja externa y la he colocado en otra caja más grande donde también he ubicado una pequeña placa que incluye un relé. La placa además del relé incluye ciertos elementos electrónicos que le dotan de las oportunas protecciones. Lo podéis encontrar en múltiples tiendas online, por ejemplo. Para los que no tengan mucha idea de electrónica (como es mi caso), con esta placa se puede abrir o cerrar un circuito dependiendo del estado de unas entradas.

A continuación unas imágenes para explicar mejor el proceso. En las tres primeras, se puede ver la nueva caja para el trasformador donde queda un hueco para poner el relé. También se aprecian las conexiones del la placa del relé.

Resumiendo, la fuente de alimentación proporciona 3 hilos, uno con una tensión de +5v, otro de +12v y uno común de 0v. Tanto el de +5v como el de +12v se conecta a una ficha que a su vez conecta con la caja del disco. Pero en el caso del cable de 0v (negro) lo llevo al relé al borne com. En el relé existen 2 conexiones más en este lado; una etiquetada como NO y otra NC. Hay que elegir una de estas dos para conectarla ya al disco duro. Si se escoge NO (normalmente abierto) el circuito permanece abierto de manera predeterminada y escogiendo NC el circuito estará cerrado.

En la otra parte del relé, se encuentra la alimentación de la placa y la entrada para gestionar el relé. En concreto, el borne VCC con una tensión de +5v, el de 0v y el contacto “in” donde yo he conectado el gpio23 que se encuentra en el pin16. Leer más Encendido apagado de disco duro externo con Raspberry Pi I