crontab
El comando crontab es el encargado de mantener las listas de tareas de cron. Su sintaxis es la siguiente:
crontab [ -u user ] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
El root es el único que puede alterar la lista de tareas programadas de un usuario, por lo que es el único que puede utilizar la opción -u para referirse a un usuario en concreto.
Si el usuario juan ya hubiera creado un fichero crontab, por ejemplo, microntab, y lo quiere cargar en memoria, debería usar la primera de las sintaxis:
$ crontab microntab
De esta forma se cargan todas la tareas programadas de microntab y se guardan en /var/spool/cron/crontabs/juan, y una edición posterior de las tareas programadas sería desde este último fichero.
Si lo anterior lo hubiera hecho el root para el usuario juan:
# crontab -u juan microntab
La ejecución del comando anterior también tendría el efecto de guardar las tareas programadas sobre el fichero /var/spool/cron/crontabs/juan.
Siempre que se ejecuta el comando crontab, las tareas del usuario que existieran previamente se borrarán y se introducirán las que vayan en el fichero.
La opción -e edita las tareas actuales con el editor de texto por defecto; a partir de ese momento podremos modificar, añadir o quitar tareas y al salir del editor, lo que hubiéramos dejado sustituiría a las tareas existentes.
$ crontab -e
El comando anterior si lo ejecuta el usuario juan, se editaría el fichero /var/spool/cron/crontabs/juan. Si lo ejecutara el root, se editaría el fichero /var/spool/cron/crontabs/root y no /etc/crontab, el cual debe ser editado directamente.
Con la opción -l podemos ver, por la salida estándar, las tareas programadas de un usuario:
$ crontab -l
* * * * * echo $(date) >> fecha-hora.txt
Eliminar las tareas se hace con -r:
$ crontab -r
Si borramos las tareas además con la opción -i, se nos preguntará antes de borrar:
$ crontab -ir
crontab: really delete usuario's crontab? (y/n) y
$
Todas las opciones anteriores las puede usar el root con la opción -u para trabajar con las tareas programadas de un usuario.
NOTA: En sistemas con arranque systemd las tareas programadas en los ficheros crontab se traducen automáticamente en temporizadores y unidades systemd mediante systemd-crontab-generator.
Obra publicada con Licencia Creative Commons Reconocimiento 4.0