Ya sé PERL !! que diría el de matrix.
Bueno, no es para tanto. La cosa es que quería actualizar diariamente la hora en que Motion se activa y comienza la grabación de eventos en la cámara del comedero de acuerdo a la hora en que sale y se pone el sol. Es decir, necesitaba añadir a crontab un script que cambiase un par de entradas en crontab cada 24 horas. Y la unica manera que he encontrado ha sido a través de PERL y los paquetes Config::Crontab y Weather::Com.

El primero para acceder y editar los eventos programados para Cron y el segundo para acceder a información meteorológica servida por weather.com (que, entre otras, incluye sunset y sunrise). Además este último me ha servido para incluir en la página de la cámara del comedero un pequeño informe meteorológico sobre el estado local del clima (e ir sobreaviso si el viento o la llúvia me ván a fastidiar las grabaciones).

El script es muy sencillo y es el primero (no se me tiren al cuello). Simplemente basta con instalar los dos paquetes PL mencionados y añadir a crontab el siguiente ejecutable:#!/usr/bin/perl
use Config::Crontab;
use Weather::Com::Finder;
#-----------------------------------
#consultamos puesta/salida de sol
#-----------------------------------
my $Id = 'xxxxxxxx';
my $Clave = 'yyyyyyyyy';
my %weatherargs = ('partner_id' => $Id,'license' => $Clave);
my $buscar = Weather::Com::Finder->new(%weatherargs);
my $mi_casa = $buscar->find('Cartagena, Spain');
@salida = split(/:/, $mi_casa->[0]->sunrise()->time());
@puesta = split(/:/, $mi_casa->[0]->sunset()->time());
#--------------------------------------
#leemos y editamos crontab
#---------------------------------------
my $ct=new Config::Crontab;
$ct->read;
my ($evento_activarcamara) = $ct->select(-command_re=>'motion -c');
$evento_activarcamara->hour($salida[0]); $evento_activarcamara->minute($salida[1]);
my ($evento_apagarcamara) = $ct->select(-command_re=>'kill -9 `cat motion.pid`');
$evento_apagarcamara->hour($puesta[0]); $evento_apagarcamara->minute($puesta[1]);
$ct->write;

Basicamente: la primera parte se conecta a weather.com utilizando el ID y Clave dadas por la página despues de registrarse, y obtiene sunrise y sunset que son devueltos en un formatos tal que 07:10 y 19:20

Una vez obtenidas la hora de salida y puesta del sol, pasamos a leer el contenido de nuestro crontab y buscamos el evento cuyo comando coincida con la expresión regular “motion -c” (el evento que lanza Motion es: motion -c motion.conf -p pid). Una vez obtenido le asignamos la hora y el minuto devuelto en el apartado anterior.
Idem con el evento apagarcamara (buscamos el kill -9 que mata el proceso Motion).

Voilá, cada noche crontab se actualiza solito para comenzar y detener las grabaciones de acuerdo a luz solar. Ahora solo falta que los pájaros hagan caso de este horario (no es el caso: por lo visto hasta ahora, comienzan la actividad unos 20 minutos antes de salir el sol y la detienen 20 minutos antes de ponerse, habrá que hacer ajustes.)