Buscar con google

miércoles, 10 de julio de 2013

cron y crontab

¿Qué es cron?

El nombre cron viene del griego chronos que significa “tiempo”. En el sistema operativo Unix, cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab.


Cómo funciona

El demonio cron inicia de /etc/rc.d/ o /etc/init.d dependiendo de la distribucion. Cron se ejecuta en el background, revisa cada minuto la tabla de tareas crontab /etc/crontab o en /var/spool/cron en búsqueda de tareas que se deban cumplir. Como usuario podemos agregar comandos o scripts con tareas a cron para automatizar algunos procesos. Esto es util por ejemplo para automatizar la actualizacion de un sistema o un buen sistema de respaldos.

¿Qué es Crontab?

Crontab es un simple archivo de texto que guarda una lista de comandos a ejecutar en un tiempo especificado por el usuario. Crontab verificará la fecha y hora en que se debe ejecutar el script o el comando, los permisos de ejecución y lo realizará en el background. Cada usuario puede tener su propio archivo crontab, de hecho el /etc/crontab se asume que es el archivo crontab del usuario root, cuando los usuarios normales (e incluso root) desean generar su propio archivo de crontab, entonces utilizaremos el comando crontab.

Crontab es la manera mas sencilla de administrar tareas de cron en sistemas multiusuario, ya sea como simple usuario de sistema o usuario root.


Utilizando crontab

Igual son manías, casi seguro, pero para esto me sitúo como root en el directorio /etc/
A mi con dos comandos me ha bastado y sobrado crontab -l para listar los trabajos y crontab -e para editar.
Ponemos crontab -e y nos aparece lo siguiente (pongo lo relevante que lo otro es un rollo): 
(...)
# For more information see the manual pages of crontab(5) and cron(8)
# m h  dom mon dow   command

y aquí es donde ponemos lo que queremos que haga. A saber qué es cada cosa:
m > minuto
h > hora
dom > day of month (un poquito de inglés no viene mal)
mon > month
dow > day of week
command > comando (aquí metemos la ruta hasta nuestro script)

m h  dom mon dow   command
30 20 * * * /usr/local/bin/copia.sh  (todos los días de todos todos (*) ejecutará a las 20.30 el script copia).

  m h  dom mon dow   command
 15 19  *   *    1,2,3,4,5,6,7    /sbin/init 0   Todos los días * a las 19:15 el sistema se apagará. (Esta programación ha de estar en el usuario root)

Muy muy difícil no es, pero si no lo sabes.....pues no sale.

Fuente: http://usemoslinux.blogspot.com/2010/11/cron-crontab-explicados.html

No hay comentarios:

Publicar un comentario