«cron» y el último día de cada mes

El demonio cron facilita las ejecuciones programadas cuando se trata del primer día del mes. Sin embargo para el último día de cada mes hay que usar un poco de ingenio y otras herramientas del sistema. Una manera:

30 23 * * * [[ $(date +'%d') -eq $(cal | awk '!/^$/{ print $NF }' | tail -1) ]] && /ruta/absoluta/al/script 1>/dev/null 2>&1

Que cada día a las 2330 comprobará si se trata del último día del mes:

  1. Obtiene el día del mes.
  2. Obtiene el calendario del mes actual.
    1. Extrae el final de cada línea del calendario.
    2. Se queda con la última de esas líneas.
  3. Si el día actual es igual al último día del mes obtenido, se ejecuta lo que le digamos y las salidas las manda a /dev/null.

Fuente → The UNIX and Linux Forums.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *