Aquesta és una revisió antiga del document
cron
Conceptos básicos
comprobar si está en ejecución:
$ ps -ef | grep crond
Añadir el servicio si no lo estuviera:
$ chkconfig --level 35 crond on
variables de entorno
$ export EDITOR=nano
Uso sencillo
añadir el script a ejecutar en alguno de estos directorios (o un link):
- /etc/cron.hourly → se ejecuta cada hora
- /etc/cron.daily → se ejecuta cada día
- /etc/cron.weekly → se ejecuta cada semana
- /etc/cron.monthly → se ejecuta cada mes
Uso "elaborado"
modificar /etc/crontab las lineas que realmente ejecutan los «trabajos» son del estilo:
* * * * * <usuario> <comando>
Donde los primeros asteríscos corresponden, de izquierda a derecha:
- minuto
- hora
- día del mes
- mes
- dia de la semana
Un asterisco indica «cualquiera»,
- Se puede indicar rangos: 1-3
- Se pueden indicar listas: 1,3,5,7
- Se pueden indicar fracciones: */15 =⇒ cada 15 minutos, 1-10/2 ⇒ los 1,3,5,7,9 (empieza en el 1, a saltos de 2), 2/4 ⇒ 2,6,10,14
personalizado
con los siguientes comandos podemos gestionar nuestros propios trabajos CRON (individual para cada usuario):
$ crontab <fichero> : añade el fichero con formato cron $ crontab -e : edita el fichero $ crontab -l : lista los trabajos añadidos a nuestros fichero $ crontab -r : elimina los crontab
No sirve modificar el fichero original, hay que añadirlo cuando toque. El formato del crontab es ligeramente diferente, no se ha de especificar el usuario.
El fichero se guarda, a buen recaudo, en /var/spool/cron/crontabs (en una debian, al menos)
seguridad
se puede controlar quien usa y quien no el servicio CRON en los archivos:
/etc/cron.allow /etc/cron.deny
en estos ficheros se añade la lista de usuarios con o sin permisos. Se puede utilizar ALL en cualquiera de los 2
Si no se crea el cron.deny y si el cron.allow, es como si hubiesemos creado un cron.deny con un ALL y tendremos que añadir a todos los usuarios que tengan que utilizar este servicio en el cron.allow