Tareas programadas en GNU/Linux, BSD

    cron es el servicio que permite programar la ejecución de comandos y tareas en GNU/LINUX, BSD y otras variantes UNIX. cron se ejecuta cada minuto y detecta si hay un nuevo comando o tarea que deba ejecutarse, para ello lee los ficheros /etc/crontab, /etc/cron.d/* y /var/spool/cron/crontabs/*

    crontab es el programa que mantiene (instala, desinstala o lista las tareas programadas) los ficheros de las tareas programadas, cada usuario tiene su propio fichero crontab en /var/spool/cron/crontabs/usuario el cual no debe editarse directamente. Si el fichero /etc/cron.allow existe su usuario debe aparecer en el mismo para poder programar tareas, si no existe y existe /etc/cron.deny su usuario no debe aparecer en este último; si ninguno de los 2 existen entonces depende de la configuración por defecto del SO.

    crontab tambien es el fichero que contiene instrucciones para ejecutar las tareas programadas. Una línea en el fichero crontab puede establecer una variable de entorno (nombre-var = valor) o programar la ejecución de un comando; las líneas en blanco y las que comienzan con # (comentarios) son ignoradas. El formato para programar una tarea es el siguiente:

    #(0-59) (0-23)    (1-31)    (1-12)       (0 - 7)
      min     hr    día-del-mes  mes     día-de-la-semana	       comando

    Notas:

    • – Un * = todo los valores posibles
    • – Se puede especificar un rango de valores separados por un guión
    • – Se puede especificar una lista de valores separados por coma
    • – Se puede especificar un paso dentro de un rango de valores
    • – El 0 o 7 = Domingo para día-de-la-semana

    Ejemplos

    Realizar copias de seguridad a mi home cada 5 min
    */5 0 * * * rsync -avz $HOME servidor:/mnt/respaldo
    Realizar copias de seguridad a mis BD de lunes – viernes a las 10:00 p.m
    0 22 * * 1-5 mysqldump -u root -pclave --all-databases > $HOME/bds.sql
    Enviar correo de recordación los días 1ero y 15 de cada mes a las 2:15 p.m
    15 14 1,15 * * mail -s 'Recordatorio' flosblog@wordpress.com < /dev/null
    Realizar copias de seguridad a mis projectos cada 2 horas en el horario de 8:30 a.m – 5:30 p.m de lunes a viernes
    30 8-17/2 * * 1-5  rsync -avz $HOME/prt servidor:/mnt/respaldo/prt
    Todo junto
    # Usar BASH para ejecutar los comandos
    SHELL=/bin/bash
    
    */5 0 * * * rsync -avz $HOME servidor:/mnt/respaldo
    
    0 22 * * 1-5 mysqldump -u root -pclave --all-databases > $HOME/bds.sql
    
    15 14 1 * * mail -s 'Recordatorio' flosblog@wordpress.com < /dev/null
    
    30 8-17/2 * * 1-5  rsync -avz $HOME/prt servidor:/mnt/respaldo/prt
    Para editar el fichero crontab ejecute
    crontab -e

    Lecturas recomendadas

    – man cron
    – man 1 crontab
    – man 5 crontab




    1 Comentario

    1. Pingback: Contar el número de procesos Apache (HTTPD) « Flossblog

    Dejar un comentario

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