On Fri, 01 Jul 2016 16:14:30 -0400, Alberto José García Fumero wrote:
El vie, 01-07-2016 a las 11:24 -0400, Yoandy Madrazo Gómez escribió:
Hay alguna forma de ejecutar un script el primer día laborable de cada
mes?? Es para un sistema de salvas con backuppc.


Saludos, Yoandy


Guarda en un arreglo del script el listado de los días laborables, y haz
que el script compruebe cada día si la fecha se corresponde... ;-)
Digo yo...

Bueno, esa sería una forma pero realmente no es necesario llenar un arreglo con los días laborales del mes.

La solución que puse antes no cubría el caso de que el primer día del mes no sea lunes, así que por mero ejercicio intelectual hice el siguiente script:

#! /bin/sh

# Obtener el número del día en el mes
DIAMES=$(expr `date +%d` + 0)

# Obtener el número del día en la semana, del 1 al 7 (1 es lunes).
DIASEM=$(expr `date +%u` + 0)

# Variable para evaluación final
PRIMERDIALABORAL=0

# Evaluación para establecer el valor de la variable
if [ ${DIAMES} -eq 1 ]; then
  if [ 6 -gt ${DIASEM} ]; then
    PRIMERDIALABORAL=1
  fi
elif [ ${DIAMES} -le 3 ]; then
  if [ 2 -gt ${DIASEM} ]; then
    PRIMERDIALABORAL=1
  fi
fi

# Evaluar el valor de la variable
if [ ${PRIMERDIALABORAL} -eq 1 ]; then
  echo "Depuración: Este es el primer día laboral del mes."
  # Insertar aqui las acciones a tomar
else
  echo "Depuración: Este no es el primer día laboral del mes."
fi

exit 0


Noten que como mis sistemas no corren bash por defecto sino dash, en lo posible prefiero evitar las comparaciones de igualdad y favorezco las comparaciones por valores numéricos para que mis scripts sean más portables, pero obviamente que esto es una preferencia personal.

Saludos, Hugo


--
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que est� limpio.


______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l

Responder a