Archivos relacionados con las tareas programadas en Ubuntu Server 18.04 LTS

Publicado por P. Ruiz en

Ya hemos visto en otros artículos que el modo más sencillo de crear una tarea programada es utilizando el comando crontab -e. Al hacerlo, se abre el editor de textos que tengamos definido en la variable de entorno $EDITOR y ahí escribimos la tarea con la sintaxis adecuada.

Esto es lo que habrás observado cuando hayas programado tareas en Ubuntu que automaticen algún proceso.

Quizás en esos momentos te hayas preguntado cómo funcionan las cosas en la trastienda y dónde guarda el sistema operativo las tareas que se has escrito. Esta y algunas otras cuestiones son las que trataremos de aclarar en el artículo de hoy.

Si aún no te has familiarizado con la programación de tareas en Ubuntu 18.04 LTS, te recomiendo que le eches un vistazo a los siguientes artículos:

Archivos con las tareas programadas de cada usuario

Las tareas que se crean con el comando crontab se guardan en el directorio /var/spool/cron/crontabs con el nombre del usuario al que pertenecen. De este modo, según creemos tareas para nuevos usuarios, irán apareciendo nuevos archivos.

Contenido del directorio en el momento de escribir este artículo

Archivos-relacionados-con-las-tareas-programadas-en-Ubuntu-Server-1804-LTS-001

Observa que hemos necesitado privilegios administrativos para consultar el contenido del directorio. De esa forma, ningún otro usuario podrá saber las tareas programadas que tienen el resto.

Por otro lado, en la imagen anterior observamos que, en nuestro ejemplo, solo existen dos cuentas de usuario que tengan programadas tareas en el sistema: root y usuario.

Cuando eliminemos las tareas de un usuario (por ejemplo con sudo crontab -u usuario -r) desaparecerá su archivo correspondiente en el directorio /var/spool/cron/crontabs.

Otros archivos de la carpeta /etc relacionados con la programación de tareas

Además de los archivos anteriores, dentro del directorio /etc encontramos los directorios cron.d, cron.hourly, cron.daily, cron.monthly y cron.weekly que, como veremos más abajo, también están relacionados con el servicio cron.

También tenemos los archivos crontab, cron.allow y cron.deny. Los dos últimos ya los conocemos del artículo Controlar los usuarios que pueden programar tareas en Ubuntu Server 18.04 LTS.

Para comprobarlo, basta con usar el siguiente comando:

ls /etc --group-directories-first

Como habrás imaginado, el argumento –group-directories-first nos permite obtener separados los directorios de los archivos.

Archivos-relacionados-con-las-tareas-programadas-en-Ubuntu-Server-1804-LTS-002

Y a continuación mostramos la salida completa…

Archivos y directorios relacionados con el servicio cron.

Archivos-relacionados-con-las-tareas-programadas-en-Ubuntu-Server-1804-LTS-003

En cuanto al archivo /etc/crontab, contiene una serie de tareas programadas de forma genérica para el sistema.

Para comprobar su aspecto, basta con utilizar el editor de textos nano, o cualquier otro que prefieras:

sudo nano /etc/crontab

Como de costumbre, escribimos el comando y pulsamos la tecla Intro.

Archivos-relacionados-con-las-tareas-programadas-en-Ubuntu-Server-1804-LTS-004

Al momento, tendremos el contenido del archivo en la pantalla.

Contenido predeterminado del archivo /etc/crontab.

Archivos-relacionados-con-las-tareas-programadas-en-Ubuntu-Server-1804-LTS-005

La idea es que se ejecuten de forma sistemática las cuatro tareas programadas que hay definidas en la parte inferior del archivo. En realidad, todas ellas son prácticamente iguales y consisten en ejecutar uno a uno, todos los scripts que contengan los directorios cron.hourly, cron.daily, cron.monthly y cron.weekly.

Lógicamente, lo que cambia es la definición del periodo:

  1. En la primera (17 * * * *), los scripts que se encuentren dentro del directorio cron.hourly se ejecutarán en el minuto 17 de cada hora, todos los días.

  2. En la segunda (25 6 * * *), los scripts que se encuentren dentro del directorio cron.daily se ejecutarán a las 6:25 de la mañana, también todos los días.

  3. En la tercera (47 6 * * 7), los scripts que se encuentren dentro del directorio cron.weekly se ejecutarán todos los domingos a las 6:47.

  4. En la cuarta (52 6 1 * *), los scripts que se encuentren dentro del directorio cron.monthly se ejecutarán el día 1 de cada mes a las 6:52 .

Por último, el directorio cron.d se utiliza en otras distribuciones para guardar los archivos cron.allow y cron.deny, que, como ya hemos dicho, en Ubuntu 18.04 LTS se encuentran dentro del directorio /etc.

Y esto es todo por el momento. Espero que te haya resultado interesante.