[CentOS-es] Cron - programar ultimo domingo de cada mes -
Carlos Restrepo
restrcarlos en gmail.com
Vie Nov 30 17:54:08 UTC 2012
El 30 de noviembre de 2012 11:42, Eddy Olivo <eddyolivo en gmail.com> escribió:
> Leonardo tendrías que ver la sugerencia de Carlos para la programación de
> ese CRON puntual, ya que es inusual....y no es por la vía convencional.
>
> saludos
>
> El 30 de noviembre de 2012 12:34, Leonardo Serrano <
> leo en audiovisuales.icaic.cu> escribió:
>
> > #[min]*[hour]* [day of month] [month] [day of week] [program to be run]
> >
> > debajo de donde dice hour (hora militar si mal no recuerdo)
> >
> >
> >
> >
> >
> > El 30/11/2012 11:27 a.m., Eddy Olivo escribió:
> > > gracias a todos nuevamente... Carlos en lo que sugieres donde
> especifico
> > la
> > > hora en que se ejecutara?
> > >
> > > saludos
> > >
> > > El 30 de noviembre de 2012 11:57, Carlos Martinez <camarti en gmail.com
> > >escribió:
> > >
> > >> Saludos.
> > >>
> > >> Esto no se puede hacer en cron puro habría que hacer algo como esto:
> > >>
> > >> #[min] [hour] [day of month] [month] [day of week] [program to be run]
> > >> 18 0 * * 0
> > >> [ `date "+%d"` -gt 24 ] && /path/to/script
> > >>
> > >> Lo que se hace en la parte de cron es ejecutar la tarea cada domingo.
> > >> Lo que hace [ `date "+%d"` -gt 24 ] && /path/to/script es asegurarse
> > >> parcialmente, que el domingo sea el último de cada mes.
> > >>
> > >> En otras palabras, hay que crear código (bash, tcsh, perl), que se
> > >> asegure que el domingo es efectivamente el último de cada mes. En el
> > >> caso de [ `date "+%d"` -gt 24 ] este falla para los siguientes meses
> > >> de aquí al 2020: Feb-2013, Nov-2013, Feb-2014, Feb-2015, Abr-2016,
> > >> Sep-2017, Feb-2019 y Nov-29. En ese caso, o se agregan tareas
> > >> específicas para esos meses en particular o se hacen mayores
> > >> comprobaciones en el script sobre la fecha. 8 tareas en cron
> > >> adicionales de aquí al 2020 frente un script mas complicado ... me
> > >> quedo con las 8 tareas.
> > >>
> > >>
> > >>
> > >>
> > >>
> > >> 2012/11/30 Eddy Olivo <eddyolivo en gmail.com>:
> > >>> Estimados
> > >>>
> > >>> Luego de mucho buscar en google, no encuentro como resolver mi
> > necesidad
> > >> y
> > >>> le escribo para solicitarles el favor de echarme una mano.
> > >>>
> > >>> Lo que deseo hacer es ejecutar una tarea (CRON) el ultimo domingo de
> > cada
> > >>> mes.
> > >>>
> > >>> --
> > >>> Saludos,
> > >>>
> > >>> Eddy Olivo
> > >>> _______________________________________________
> > >>> CentOS-es mailing list
> > >>> CentOS-es en centos.org
> > >>> http://lists.centos.org/mailman/listinfo/centos-es
> > >>
> > >>
> > >> --
> > >> Atte.,
> > >> Carlos Andrés Martínez
> > >> _______________________________________________
> > >> CentOS-es mailing list
> > >> CentOS-es en centos.org
> > >> http://lists.centos.org/mailman/listinfo/centos-es
> > >>
> > >
> > >
> >
> >
> > --
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > ---------------------------
> > Tec.Leonardo Serrano Berdeal
> > Administrador de la Red
> > Audiovisuales
> > ICAIC
> >
> >
> >
> > _______________________________________________________________
> > Instituto Cubano del Arte e Industria Cinematográficos - ICAIC
> > **Visite, Visit** http://www.cubacine.cu
> > _______________________________________________
> > CentOS-es mailing list
> > CentOS-es en centos.org
> > http://lists.centos.org/mailman/listinfo/centos-es
> >
>
>
>
> --
> Saludos,
>
> Eddy Olivo
>
> Skype: eddyolivo
> FB: http://www.facebook.com/eddyolivo
> twitrer: @eddyolivo <https://twitter.com/#!/eddyolivo>
> _______________________________________________
> CentOS-es mailing list
> CentOS-es en centos.org
> http://lists.centos.org/mailman/listinfo/centos-es
>
Eddy, la sacas mas facil con el ejemplo del link que te paso mario manga,
solo que ese ejemplo esta para un viernes y debería quedar asi:
(obviamente colocas la hora y minutos a gusto del consumidor)
10 10 * * 7 [ $(date +"\%m") -ne $(date -d 7days +"\%m") ] &&
/path/to/your/script
Se ejecutara cuando la comparativa de mes no sea igual.
PD: No necesita el "\" en la sentencia y lo puedes evidenciar al ejecutar
en una consola de comandos algo como esto: echo [ $(date +"\%m") -ne
$(date -d 7days +"\%m") ]
Colocalo de la siguiente manera:
10 10 * * 7 [ $(date +"%m") -ne $(date -d 7days +"%m") ] &&
/path/to/your/script
Para se un poco mas "paranoico" propio de los Linuxeros al inicio de tu
scripts coloca las siguientes sentencias:
Ctrl=`date +%b`
if [ $Ctrl != "sun" ]
then
exit
fi
sun sin tu distribución esta en ingles, si esta en español seria dom.
--
Carlos R!.
Más información sobre la lista de distribución CentOS-es