Somete, edita, lista o elimina trabajos de tipo cron.
crontab [ -e [NombreUsuario] | -l [NombreUsuario] | -r [NombreUsuario] | -v [NombreUsuario] | Archivo ]
El mandato crontab somete, edita, lista o elimina trabajos de tipo cron. Un trabajo cron es un mandato ejecutado por el daemon cron a intervalos regulares planificados. Para someter un trabajo cron, especifique el mandato crontab con el distintivo -e. El mandato crontab invoca una sesión de edición que permite al usuario crear un archivo crontab. Se crean entradas para cada trabajo cron de este archivo. Cada entrada debe estar en un formato aceptable para el daemon cron. Para obtener información sobre la creación de entradas, consulte El formato de entradas del archivo crontab.
Cuando haya terminado de crear las entradas y salga del archivo, el mandato crontab lo copiará en el directorio /var/spool/cron/crontabs y lo colocará en un archivo indicado para el nombre de usuario actual. Si ya existe un archivo con su nombre en el directorio crontabs, el mandato crontab lo sobrescribe.
Como alternativa, puede crear un archivo crontab especificando el parámetro Archivo. Si el archivo existe, debe tener el formato esperado por el daemon cron. Si el archivo no existe, el mandato crontab invoca el editor. Si la variable de entorno EDITOR existe, el mandato invoca al editor que ésta especifica. De lo contrario, el mandato crontab utiliza el editor vi.
Para listar el contenido del archivo crontab, especifique el mandato crontab con el distintivo -l. Para eliminar un archivo existente, utilice el distintivo -r.
El propietario del archivo crontab o el usuario raíz pueden utilizar el parámetro opcional NombreUsuario para editar, listar, eliminar o comprobar el estado de los trabajos cron del usuario especificado. Si el NombreUsuario no es válido, se genera un mensaje de error y el programa efectúa la salida.
Si no se especifica el parámetro opcional NombreUsuario, los distintivos de crontab están disponibles para el usuario raíz y el usuario actual.
Sólo el usuario raíz o el propietario del archivo crontab pueden utilizar NombreUsuario a continuación de los distintivos -e , -l, -r y -v para editar, listar, eliminar o comprobar el archivo crontab del usuario especificado.
El daemon cron ejecuta mandatos de acuerdo con las entradas del archivo crontab. A menos que redireccione la salida de un trabajo cron a la salida o a los errores estándar, el daemon cron envía al usuario la salida o los errores de los mandatos. Si especifica incorrectamente un trabajo cron en el archivo crontab, el daemon cron no lo ejecuta.
El daemon cron examina los archivos crontab sólo cuando se inicializa el daemon cron. Cuando el usuario realiza cambios en el archivo crontab mediante el mandato crontab, se envía un mensaje al daemon cron indicando el cambio. Esto elimina la actividad general derivada de la comprobación de archivos nuevos o cambiados a intervalos regulares planificados.
Los archivos /var/adm/cron/cron.allow y /var/adm/cron/cron.deny controlan qué usuarios pueden utilizar el mandato crontab. Un usuario raíz puede crear, editar o suprimir estos archivos. Las entradas de estos archivos son nombres de inicio de sesión de usuario, uno en cada línea. Si su ID de inicio de sesión está asociado con más de un nombre de inicio de sesión, el mandato crontab utiliza el primer nombre de inicio de sesión que encuentra en el archivo /etc/passwd, independientemente del nombre de inicio de sesión que pueda estar utilizando realmente el usuario. Asimismo, para permitir que los usuarios inicien trabajos cron, el atributo daemon del archivo /etc/security/user debe establecerse en TRUE mediante el mandato chuser.
A continuación figura un ejemplo de un archivo cron.allow:
root nick dee sarah
Si el archivo cron.allow existe, sólo los usuarios cuyos nombres de inicio de sesión aparezcan en él pueden utilizar el mandato crontab . El nombre de inicio de sesión del usuario raíz debe aparecer en el archivo cron.allow si éste existe. Un administrador del sistema puede impedir explícitamente que un usuario utilice el mandato crontab listando el nombre de inicio de sesión del usuario en el archivo cron.deny. Si sólo existe el archivo cron.deny, cualquier usuario cuyo nombre no aparezca en el archivo puede utilizar el mandato crontab.
Un usuario no podrá utilizar el mandato crontab si se cumple una de las siguientes condiciones:
Si ni el archivo cron.allow ni el archivo cron.deny existen, sólo alguien con autorización de usuario raíz podrá someter un trabajo con el mandato crontab.
Un archivo crontab contiene una entrada para cada trabajo cron. Las entradas están separadas por caracteres de línea nueva. Cada entrada del archivo crontab contiene seis campos separados por espacios o tabulaciones, con el siguiente formato:
minuto hora día_del_mes mes día_semana mandato
Estos campos aceptan los siguientes valores:
| minuto | 0 a 59 |
| hora | 0 a 23 |
| día_del_mes | 1 a 31 |
| mes | 1 a 12 |
| día_semana | 0 a 6 para Domingo a Sábado |
| mandato | un mandato de shell |
Debe especificar un valor para cada campo. Excepto para el campo mandato, estos campos pueden contener lo siguiente:
Nota: cualquier carácter precedido de una barra inclinada invertida (incluido %) hace que ese carácter se trate como un literal. La especificación de los días puede realizarse en dos campos (día del mes y día de la semana). Si especifica ambos como una lista de elementos, se respetarán ambos. Por ejemplo, la entrada siguiente:0 0 1,15 * 1 mandatoejecutará el mandato en los días primero y decimoprimero de cada mes. así como cada Lunes. Para especificar los días sólo con un campo, el otro campo debe contener un * .
El daemon cron ejecuta el mandato indicado en el sexto campo en la fecha y hora seleccionadas. Si incluye un signo de porcentaje (%) en el sexto campo, el daemon cron tratará todos los elementos que lo precedan como si fuera la invocación del mandato y pondrá todos los elementos que lo sigan a disposición de la entrada estándar, a menos que coloque un carácter de escape ante el signo de porcentaje (\%). Las líneas en blanco y las líneas cuyo primer carácter no en blanco sea el signo de número (#) se pasarán por alto. Si los argumentos del mandato contienen una barra inclinada invertida ('\'), ésta debe ir precedida de otra barra inclinada invertida.
El daemon cron inicia una subshell desde el directorio HOME. Si planifica un mandato para que se ejecute cuando no haya iniciado la sesión y desea que se ejecuten los mandatos del archivo .profile, el mandato debe leer explícitamente el archivo .profile.
El daemon cron suministra un entorno predeterminado para cada shell, definiendo HOME, LOGNAME, SHELL (=/usr/bin/sh) y PATH (=/usr/bin).
Eventos de auditoría: si el subsistema de auditoría se ha configurado correctamente y está habilitado, el mandato crontab genera el siguiente registro (evento) de auditoría cada vez que se ejecuta:
| Evento | Información |
|---|---|
| CRON_JobRemove | Indica qué usuarios han eliminado un trabajo cron y cuándo lo han hecho. |
| CRON_JobAdd | Indica qué usuarios han añadido un trabajo cron y cuándo lo han hecho. |
Este mandato devuelve los siguientes valores de salida:
| 0 | Finalización satisfactoria. |
| >0 | Se ha producido un error. |
crontab mycronjobsEl archivo se copiará como:
/var/spool/cron/crontabs/<nombre_usuario>donde <nombre_usuario> es el nombre de usuario actual.
0 * * * * echo The hour is `date` . >/dev/console
30 6 * * 1,3,5 /usr/bin/calendar
30 6 * * * /usr/bin/calendar
0 0 * 8 * /u/harry/bin/maintenance
0 16 * 12 5 /usr/sbin/wall%HAPPY HOLIDAY!%Remember to turn in your time card.El texto situado a continuación del signo de porcentaje (%) define la entrada estándar del mandato wall como:
HAPPY HOLIDAY! Remember to turn in your time card.