[CentOS-es] Cron - programar ultimo domingo de cada mes -

Héctor Herrera hherreraa en gmail.com
Vie Nov 30 17:52:35 UTC 2012


Ya sé cómo se puede hacer!!

Con la salida de 'cal', se puede parsear de la siguiente forma:

#!/bin/bash
cal > temporal.txt
filaDomingo= $(wc -l temporal.txt | awk {'print $1'})
numero=$(sed -n ${filaDomingo}p temporal.txt | awk {'print $1'}

Aquí tienes el último día. Tendrías que cambiar la variable que mire el
comando awk por el que corresponda al día Domingo. Para que sea más fácil
de entender, el último Domingo, si está ordenado el calendario de Domingo a
Sábado, *es siempre el primer número que aparece en la última fila de la
salida de 'cal'*. Y listo, con eso lo tienes. Ahora, te correspondería ver
cómo entregarle ese valor a un script, para que escriba en el archivo de
configuración de cron, o derechamente que lo mueva según las directrices
que corresponden a cron.monthly

Ahora sí que creo que te ayudé :D!



El 30 de noviembre de 2012 14:25, René Lara Alvarado
<admin en probajio.com.mx>escribió:

> Creo que programar un scripth en bash  para saber si un una fecha dada es
> domingo último del mes y respaldadando en caso de que lo sea, es algo
> solventable
>
> Esta idea de cal me parece buena para ello o bien con alguna de las ideas
> ya
> expuestas que son mas o menos
>
> Evaluar la fecha de hoy
> Si DiaSem=7 y Mes=2 y DiaDelMes>=23
>    Es domingo ultimo de un febrero.
>    respaldar
> FinSi
>
> Si DiaSem=7 y Mes<>2 y DiaDelMes>24
>    Es domingo ultimo de un mes distinto a febrero
>    respaldar
> FinSi
>
> (solo resolver los casos especiales  que ya mencionaron con el 24)
>
> Luego poner un cron que se ejecute diario ese scritpt
> Si, ya se que no se desea que se ejecute diario pero bueno, el cron al
> final
> de cuentas debe evaluar diariamente, de manera interna pero lo hace, ademas
> que no es pesado
>
>
> Ahora, ¿será realmente importante el respaldar en ese domingo? ¿no puede
> ser
> cualquier domingo con tal de que se haga cada mes?
> Muchas veces los sistemas no los llevan tan al día como para pensar que el
> dia 1 ya tengo todo lo del mes anterior.
> En las contabilidades aspectos como el tipo de cambio, hacen que esté
> completo todo un poco despues.
>
>
>
> r.lara
>
>
>
>
> -----Mensaje original-----
> De: centos-es-bounces en centos.org [mailto:centos-es-bounces en centos.org] En
> nombre de Héctor Herrera
> Enviado el: Viernes, 30 de Noviembre de 2012 11:06 a.m.
> Para: centos-es en centos.org
> Asunto: Re: [CentOS-es] Cron - programar ultimo domingo de cada mes -
>
> Y calcular en base a la salida del comando 'cal' el último domingo del mes?
> Yo creoque también podría ser una alternativa...
>
> Si tenemos la salida de cal como sigue:
>
>    November 2012
>  S  M Tu  W Th  F  S
>              1  2  3
>  4  5  6  7  8  9 10
> 11 12 13 14 15 16 17
> 18 19 20 21 22 23 24
> 25 26 27 28 29 30
>
> Podemos contar cuántas filas tiene. Si tiene 6 filas, miramos el primer
> número de la fila 6. Si tiene 7 filas, miramos el primer número de la fila
> 7. Y eso lo asignamos en un cron.monthly. Insisto, que dicho script se
> ejecute el primer día del mes.
>
> Entonces, tu formato de cron vendría a ser algo como:
> #[min] [hour] [day of month] [month] [day of week] [program to be run]
>    *        *          dia.sh            *           Sun
> lo-que-quieras-ejecutar
>
> Espero se entienda.
>
>
> El 30 de noviembre de 2012 13: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
> >
>
>
>
> --
> Saludos
>
> *Héctor Herrera Anabalón*
> Egresado ICCI UNAP
> Servicio Arquitectura Galatea - Oficina Técnica http://www.galatea.cl
> Miembro USoLIX Victoria
> Registered User #548600 (LinuxCounter.net)
> +56983118902
> _______________________________________________
> CentOS-es mailing list
> CentOS-es en centos.org
> http://lists.centos.org/mailman/listinfo/centos-es
>
>
> _______________________________________________
> CentOS-es mailing list
> CentOS-es en centos.org
> http://lists.centos.org/mailman/listinfo/centos-es
>



-- 
Saludos

*Héctor Herrera Anabalón*
Egresado ICCI UNAP
Servicio Arquitectura Galatea - Oficina Técnica http://www.galatea.cl
Miembro USoLIX Victoria
Registered User #548600 (LinuxCounter.net)
+56983118902


Más información sobre la lista de distribución CentOS-es