Ejecutar script automáticamente con Cron en Linux

Para los que no sabemos nada los Cron son administradores de procesos que se ejecutan en segundo plano cada cierto tiempo según sean configuremos; son ampliamente utilizados para hacer backup programados; como usuarios podemos automatizar tareas con comandos BASH (por ejemplo para ejecutar un script como un .sh); de esta forma podemos tener una administración completa de un sistema; no sólo es posible emplear .sh para utilizar un Cron, también se puede emplear cualquier tipo de comando BASH (por ejemplo para ejecutar un archivo PHP); todo depende de lo que se desee hacer.

Asi pues ya sabemos que el  Cron es el administrador de procesos, pero lo que todavía no sabemos es que Cron lee en un archivo de texto plano llamado Crontab en donde se guardan una lista de comandos creados por el usuario ha ser ejecutados; la sintaxis para crear una de estas tareas programadas en muy sencilla:

* * * * * comando ha ser ejecutado
- - - - -
| | | | |
| | | | ----- Día de la semana (0 - 7)
| | | ------- Mes (1 - 12)
| | --------- Día del mes (1 - 31)
| ----------- Hora (0 - 23)
------------- Minuto (0 - 59)

Básicamente el cron consta de dos mitades:

  • El tiempo en el cual se ejecutará la tarea del Crontab; el mismo esta compuesto por operadores y resulta de lo más versátil:
    • Cada minuto: En intervalos de entre 0 a 59.
    • Cada hora: En intervalos de entre 0 a 23.
    • Cada día:En intervalos de entre 0 a 31.
    • Cada mes:En intervalos de entre 0 a 12 (0==12 y 12 == Diciembre).
    • Cada día de la semana:En intervalos de entre 0 a 7 (0==7 y 7 == domingo).
  • El comando BASH:

Por ejemplo para ejecutar un .sh cada cierto tiempo podemos hacer algo como lo siguiente:

1 2 3 4 5 /path/para/script.sh

Si el .sh recibe parámetros:

1 2 3 4 5 /path/para/script.sh p1 p2 ... pn

En donde p1, p2, … pn son los parámetros que recibe el .sh.

si bien ya vimos como es el formato básico de un Cron, ahora lo interesante resulta en ¿Cómo agregamos un Cron o nuestra tarea para su ejecución? Pues primero abrimos nuestro consola o terminal y ejecutamos el siguiente comando :

Crontab -e

después a través de un editor de consola; VI, VIM, nano o cualquier otro que se tengan instalado, agregamos la tarea al Crontab; por ejemplo:

0 22 * * 1-5 /home/usuario/sh/backup.sh

y por ultimo si deseas ver la lista de tareas en el Crontab en el sistema:

Crontab -l

Pues creo que es bastante fácil o no lo creen?

lo vi en http://www.desarrollolibre.net

Acerca del Autor