|
Sistemas Operativos: Qué es, cómo se configura el Cron, el programador de tareas de Linux
Os explicamos qué es el cron y cómo se configura. Cron es el programador de tareas para ejecución automática en un momento del tiempo definido por el usuario. Crontab es el fichero donde se aloja la configuración establecida para el Cron. Os mostramos cómo configurarlo en GNU Linux Ubuntu, aunque es muy similar para el resto de las distribuciones GNU Linux.
Definición de Cron y crontab, el programador de tareas de GNU LinuxEl cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o scripts a intervalos regulares de tiempo (personalizable por el usuario). El cron es el equivalente en Windows al Programador de tareas. En el caso de Windows, la configuración del programador de tareas se guarda en el Registro de configuaciones. Los procesos que deben ejecutarse ó scripts y la hora y día en la que deben hacerlo se indican en el archivo crontab. Por lo tanto crontab es un archivo de GNU Linux donde se guardan las distintas tareas programadas de los usuarios. Los ficheros que componen el Cron se encuentran normalmente en: /etc Las carpetas del Cron son: cron.d, cron.hourly, cron.daily, cron.monthly, cron.weekly: Los ficheros crontab de cada usuario se almacenan en la carpeta:/var/spool/cron/crontabs En esta carpeta "especial" habrá un fichero con el nombre de usuario, para los que hayan programado alguna tarea en el cron de GNU Linux: Nota: esta carpeta puede variar en función de la distribución de GNU Linux. Seguridad en el CronEn GNU Linux podremos indicar qué usuarios podrán ejecutar tareas programadas en el cron y qué usuarios no podrán hacerlo. Para indicar los usuarios que no podrán utilizar el cron los añadiremos en el fichero: /etc/cron.d/cron.deny Si no existe el fichero podremos crearlo con "nano" ó "vi" o cualquier editor de texto plano, con el comando: nano /etc/cron.d/cron.deny Añadiremos los nombres de los usuarios que NO podrán utilizar el Cron (tareas programadas de GNU Linux), uno por cada línea, por ejemplo: alonso, fernando, fernando.alonso: Para indicar los usuarios que sí podrán utilizar el cron los añadiremos al fichero: /etc/cron.d/cron.allow De la misma forma que para el fichero cron.deny. Una forma sencilla de administrar estos dos ficheros es la siguiente, en el fichero cron.deny ponemos una única línea: ALL
De esta forma denegamos el uso de cron a todos los usuarios. A continuación, en el fichero cron.allow pondremos los usuarios a los que queramos permitir el uso de cron: Con esta configuración los usuarios "fernando", "ajpdsoft" y "kronxito" podrán utilizar el cron para programar tareas, el resto de usuarios del sistema GNU Linux no tendrá permisos. Nota: todas las configuraciones anteriores deberemos hacerlas (a ser posible) con el superusuario root.
El servicio cronPara que las tareas programadas en los ficheros crontab se ejecuten a la hora y día indicados deberá existir un demonio (daemon) que será el encargado de comprobar segundo a segundo si tiene que ejecutar alguna tarea programada. Este servicio se puede iniciar con el comando: sudo /etc/init.d/cron start y detener con el comando: sudo /etc/init.d/cron stop Por defecto, el sistema GNU Linux iniciará este servicio en el arranque de forma automática. Nota 1: la ubicación de los servicios /etc/init.d puede variar dependiendo de la distribución de GNU Linux, en algunas se encuentran en /etc/rc.d/init.d. Nota 2: el nombre del servicio del cron puede variar, en algunas distribuciones de GNU Linux se suele llamar "crond". Desactivar el inicio automático del demonio del cronPara desactivar el inicio automático del servicio del cron, evitando así que se ejecuten las tareas programadas (salvo que iniciemos el servicio de forma manual) ejecutaremos el siguiente comando: sudo update-rc.d -f cron remove
Activar el inicio automático del demonio del cronPara activar el inicio automático del servicio del cron, para que se ejecuten las tareas programadas, ejecutaremos el siguiente comando: sudo update-rc.d cron defaults
Los ficheros y carpetas que componen el cronLas carpetas que utiliza la utilidad cron de GNU Linux son:
El fichero para el superusuario root (o el del propio sistema) será: /etc/crontab Para el resto de usuarios, sus ficheros de cron se guardarán en la siguiente carpeta, uno por cada usuario (con su nombre): /var/spool/cron/crontabs En la carpeta: /etc/cron.d se almacenarán los dos ficheros de seguridad del cron, tal y como hemos explicado anteriormente.
Cómo manipular las tareas programadas en el cron - crontab de GNU LinuxA continuación os explicamos cómo programar una tarea en el cron de GNU Linux. Para ello utilizaremos el comando GNU Linux "crontab". Este comando tiene la siguiente sintaxis: usage: crontab [-u user] file crontab [-u user] { -e | -l | -r } (default operation is replace, per 1003.2) -e (edit user's crontab) -l (list user's crontab) -r (delete user's crontab) Mostrar crontab de un usuarioPor ejemplo, para mostrar las tareas programadas del usuario "alonso" ejecutaremos el siguiente comando: sudo crontab -u alonso -l Eliminar crontab de un usuarioPara eliminar el fichero crontab del usuario ajpdsoft y con ello todas sus tareas programadas ejecutaremos el comando: sudo crontab -u ajpdsoft -r En este ejemplo, hacemos un ls -lah en la carpeta /var/spool/cron/crontabs, nos devolverá los ficheros de los usuarios que tengan activado el cron, en nuestro ejemplo "ajpdsoft" y "alonso". Tras ejecutar el comando anterior (para eliminar el crontab de un usuario), al volver a hacer un ls -lah ya no aparecerá el fichero del usuario: Añadir nueva tarea programada al crontabPara añadir una tarea programada para un usuario concreto realizaremos los siguientes pasos:
su - nombre_usuario
Configuración de las tareas programadas en el fichero crontab
Cosas a tener en cuenta:
0,10,20,30,40,50 * * * * /script.sh
30 22 10,15,25 * * /script.sh
30 15 * * 1,3,5,0 /script.sh
30 15 * * 1,3,5,0 /script.sh
30 15 * * 1,3,5,0 ajpdsoft /script.sh
Ejemplos de tareas programadas en el crontab de GNU Linux
nano copia_seguridad_diaria.sh
Artículos relacionados
CréditosArtículo realizado íntegramente por Alonsojpd miembro fundador del proyecto AjpdSoft. Anuncios
Enviado el Lunes, 02 marzo a las 03:45:30 por ajpdsoft
|
|