JavaScript is required to for searching.
Omitir Vínculos de navegación
Salir de la Vista de impresión
Gestión del rendimiento, los procesos y la información del sistema en Oracle Solaris 11.1     Oracle Solaris 11.1 Information Library (Español)
search filter icon
search icon

Información del documento

Prefacio

1.  Gestión de información del sistema (tareas)

2.  Gestión de procesos del sistema (tareas)

3.  Supervisión del rendimiento del sistema (tareas)

4.  Programación de tareas del sistema (tareas)

Maneras de ejecutar automáticamente tareas del sistema

Para programar trabajos repetitivos: crontab

Para programar un solo trabajo: at

Programación de tareas del sistema

Creación y edición de archivos crontab (mapa de tareas)

Programación de tareas repetitivas del sistema (cron )

Dentro de un archivo crontab

Cómo gestiona la programación el daemon cron

Sintaxis de entradas de archivo crontab

Creación y edición de archivos crontab

Cómo crear o editar un archivo crontab

Cómo verificar que un archivo crontab existe

Visualización de archivos crontab

Cómo visualizar un archivo crontab

Eliminación de archivos crontab

Cómo eliminar un archivo crontab

Control del acceso al comando crontab

Cómo denegar el acceso al comando crontab

Cómo limitar el acceso al comando crontab a los usuarios especificados

Cómo verificar el acceso limitado al comando crontab

Programación de tareas mediante el comando at

Uso del comando at (mapa de tareas)

Programación de una sola tarea del sistema (at)

Descripción del comando at

Control del acceso al comando at

Cómo crear un trabajo at

Cómo visualizar la cola de at

Cómo verificar un trabajo at

Cómo mostrar trabajos at

Cómo eliminar trabajos at

Cómo denegar el acceso al comando at

Cómo verificar que se ha denegado el acceso al comando at

5.  Gestión de la consola del sistema, dispositivos del terminal y servicios de energía (tareas)

Índice

Programación de tareas del sistema

En esta sección, se incluyen las tareas para programar tareas del sistema mediante archivos crontab.

Creación y edición de archivos crontab (mapa de tareas)

Tarea
Descripción
Para obtener instrucciones
Crear o editar un archivo crontab.
Utilice el comando crontab -e para crear o editar un archivo crontab.
Verificar que un archivo crontab existe.
Utilice el comando ls -l para verificar el contenido del archivo /var/spool/cron/crontabs.
Visualizar un archivo crontab.
Utilice el comando ls -l para visualizar el archivo crontab.
Eliminar un archivo crontab.
El archivo crontab está configurado con permisos restrictivos. Utilice el comando crontab -r, en lugar del comando rm, para eliminar un archivo crontab.
Denegar el acceso al comando crontab.
Para denegar a los usuarios el acceso a comandos crontab, agregue nombres de usuario al archivo /etc/cron.d/cron.deny mediante la edición de este archivo.
Limitar el acceso a crontab a usuarios específicos.
Para permitir a los usuarios el acceso al comando crontab, agregue nombres de usuario al archivo /etc/cron.d/cron.allow.

Programación de tareas repetitivas del sistema (cron )

Las siguientes secciones describen cómo crear, editar, visualizar y eliminar archivos crontab, y cómo controlar el acceso a ellos.

Dentro de un archivo crontab

El daemon cron programa tareas del sistema según los comandos encontrados en cada archivo crontab. Un archivo crontab consta de comandos (uno por línea) que se ejecutarán en intervalos regulares. El principio de cada línea contiene información de fecha y hora que indica al daemon cron cuándo debe ejecutar el comando.

Por ejemplo, durante la instalación del software SunOS, se proporciona un archivo crontab llamado root. El contenido del archivo incluye las siguientes líneas de comando:

10 3 * * * /usr/sbin/logadm (1)
15 3 * * 0 /usr/lib/fs/nfs/nfsfind (2)
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 (3)
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean (4)

A continuación, se describe el resultado de cada una de las líneas de comando:

Para obtener más información sobre la sintaxis de líneas de un archivo crontab, consulte Sintaxis de entradas de archivo crontab.

Los archivos crontab se almacenan en el directorio /var/spool/cron/crontabs. Varios archivos crontab, además de root, se proporcionan durante la instalación del software Oracle Solaris. Vea la siguiente tabla.

Tabla 4-2 Archivos crontab predeterminados

Archivo crontab
Función
adm
Contabilidad
root
Limpieza de sistema de archivos y funciones generales del sistema
sys
Recopilación de datos de rendimiento
uucp
Limpieza general de uucp

Además de los archivos crontab predeterminados, los usuarios pueden crear archivos crontab para programar sus propias tareas del sistema. Otros archivos crontab reciben el nombre de las cuentas de usuario en las que se crean, como bob, mary, smith o jones.

Para acceder a archivos crontab que pertenecen a root o a otros usuarios, se necesitan privilegios de superusuario.

Los procedimientos que explican cómo crear, editar, visualizar y eliminar archivos crontab se describen en las siguientes secciones.

Cómo gestiona la programación el daemon cron

El daemon cron gestiona la programación automática de comandos crontab. El rol del daemon cron consiste en comprobar en el directorio /var/spool/cron/crontab la presencia de archivos crontab.

El daemon cron realiza las siguientes tareas en el inicio:

Casi de la misma manera, el daemon cron controla la programación de archivos at. Estos archivos se almacenan en el directorio /var/spool/cron/atjobs. El daemon cron también escucha notificaciones de los comandos crontab sobre trabajos at ejecutados.

Sintaxis de entradas de archivo crontab

Un archivo crontab consta de comandos (uno por línea) que se ejecutan de forma automática en el momento especificado por los primeros cinco campos de cada línea de comandos. Estos cinco campos, descritos en la siguiente tabla, están separados por espacios.

Tabla 4-3 Valores aceptables para campos de hora de crontab

Campo de hora
Valores
Minute
0-59
Hour
0-23
Day of month
1-31
Month
1-12
Day of week
0-6 (0 = domingo)

Siga estas directrices para utilizar caracteres especiales en los campos de hora de crontab:

Por ejemplo, la siguiente entrada del comando crontab muestra un recordatorio en la ventana de la consola del usuario el primer día y a los quince días de cada mes, a las 4 p. m.

0 16 1,15 * * echo Timesheets Due > /dev/console

Todos los comandos de un archivo crontab deben estar compuestos por una línea, aunque esa línea sea muy larga. El archivo crontab no reconoce retornos de carro adicionales. Para obtener información más detallada sobre las opciones de comandos y las entradas de crontab, consulte la página del comando man crontab(1).

Creación y edición de archivos crontab

La forma más sencilla de crear un archivo crontab consiste en utilizar el comando crontab -e. Este comando invoca al editor de texto que se ha definido para el entorno del sistema. El editor predeterminado para el entorno del sistema está definido en la variable de entorno EDITOR. Si esta variable no se ha definido, el comando crontab utiliza el editor predeterminado ed. Se recomienda que seleccione un editor conocido.

El siguiente ejemplo muestra cómo determinar si se ha definido un editor y cómo configurar vi para que sea el comando predeterminado.

$ which $EDITOR
$ 
$ EDITOR=vi
$ export EDITOR

Al crear un archivo crontab, éste se colocará automáticamente en el directorio /var/spool/cron/crontabs y recibirá su nombre de usuario. Puede crear o editar un archivo crontab para otro usuario, o para un usuario root, si tiene privilegios de usuario root.

Cómo crear o editar un archivo crontab

Antes de empezar

Si crea o edita un archivo crontab que pertenece a un usuario root o a otro usuario, debe asumir el rol root. Consulte Cómo usar los derechos administrativos que tiene asignados de Administración de Oracle Solaris 11.1: servicios de seguridad.

No es necesario asumir el rol root para editar su propio archivo crontab.

  1. Cree un archivo crontab nuevo o edite un archivo existente.
    # crontab -e [username]

    Donde username especifica el nombre de la cuenta del usuario para la que desea crear o editar un archivo crontab. Puede crear su propio archivo crontab sin privilegios de superusuario, pero debe tener privilegios de superusuario para crear o editar un archivo crontab para root o para otro usuario.


    Precaución

    Precaución - Si accidentalmente escribe el comando crontab sin opción, presione el carácter de interrupción de su editor. Este carácter permite salir sin guardar los cambios. Si, en cambio, guardó los cambios y cerró el archivo, el archivo crontab existente se sobrescribirá con un archivo vacío.


  2. Agregue líneas de comando al archivo crontab.

    Siga la sintaxis descrita en Sintaxis de entradas de archivo crontab. El archivo crontab se colocará en el directorio /var/spool/cron/crontabs.

  3. Verifique los cambios de su archivo crontab.
    # crontab -l [username]

Ejemplo 4-1 Creación de un archivo crontab

El siguiente ejemplo muestra cómo crear un archivo crontab para otro usuario.

# crontab -e jones

La siguiente entrada del comando agregada a un archivo crontab nuevo elimina automáticamente cualquier archivo de registro del directorio principal del usuario todos los domingos a la 1:00 a. m. Debido a que la entrada del comando no redirige la salida, se agregan caracteres de redireccionamiento a la línea de comandos después de *.log. De esta forma, se asegurará de que el comando se ejecute correctamente.

# This command helps clean up user accounts.
1 0 * * 0 rm /home/jones/*.log > /dev/null 2>&1

Cómo verificar que un archivo crontab existe

Visualización de archivos crontab

El comando crontab -l muestra el contenido de un archivo crontab casi de la misma manera en que el comando cat muestra el contenido de otros tipos de archivos. No es necesario cambiar el directorio a /var/spool/cron/crontabs (donde se ubican los archivos crontab) para utilizar este comando.

De manera predeterminada, el comando crontab -l muestra su propio archivo crontab. Para visualizar los archivos crontab que pertenecen a otros usuarios, debe ser superusuario.

Cómo visualizar un archivo crontab

Antes de empezar

Asuma el rol root para visualizar un archivo crontab que pertenece a un usuario root o a otro usuario. Consulte Cómo usar los derechos administrativos que tiene asignados de Administración de Oracle Solaris 11.1: servicios de seguridad.

No es necesario asumir el rol root para visualizar su propio archivo crontab.

Ejemplo 4-2 Visualización de un archivo crontab

Este ejemplo muestra cómo utilizar el comando crontab -l para visualizar el contenido del archivo crontab predeterminado del usuario.

$ crontab -l
13 13 * * * chmod g+w /home1/documents/*.book > /dev/null 2>&1

Ejemplo 4-3 Visualización del archivo root crontab predeterminado

Este ejemplo muestra cómo visualizar el archivo crontab predeterminado de root.

$ suPassword:

# crontab -l
#ident  "@(#)root       1.19    98/07/06 SMI"   /* SVr4.0 1.1.3.1       */
#
# The root crontab should be used to perform accounting data collection.
#
#
10 3 * * * /usr/sbin/logadm
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
#10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___

Ejemplo 4-4 Visualización del archivo crontab de otro usuario

Este ejemplo muestra cómo visualizar el archivo crontab que pertenece a otro usuario.

$ su
Password:
# crontab -l jones
13 13 * * * cp /home/jones/work_files /usr/backup/. > /dev/null 2>&1

Eliminación de archivos crontab

De manera predeterminada, las protecciones del archivo crontab están configuradas para que no pueda suprimir un archivo crontab desprevenidamente mediante el comando rm. En cambio, utilice el comando crontab -r para eliminar archivos crontab.

De manera predeterminada, el comando crontab -r elimina su propio archivo crontab.

No es necesario cambiar el directorio a /var/spool/cron/crontabs (donde se ubican los archivos crontab) para utilizar este comando.

Cómo eliminar un archivo crontab

Antes de empezar

Asuma el rol root para eliminar un archivo crontab que pertenece a un usuario root o a otro usuario. Los roles incluyen autorizaciones y comandos con privilegios. Consulte Cómo usar los derechos administrativos que tiene asignados de Administración de Oracle Solaris 11.1: servicios de seguridad.

No es necesario asumir el rol root para eliminar su propio archivo crontab.

  1. Elimine el archivo crontab.
    # crontab -r [username]

    Donde username especifica el nombre de la cuenta del usuario de la que desea eliminar un archivo crontab. Eliminar archivos crontab de otro usuario requiere privilegios de superusuario.


    Precaución

    Precaución - Si accidentalmente escribe el comando crontab sin opciones, presione el carácter de interrupción de su editor. Este carácter permite salir sin guardar los cambios. Si, en cambio, guardó los cambios y cerró el archivo, el archivo crontab existente se sobrescribirá con un archivo vacío.


  2. Compruebe que el archivo crontab se haya eliminado.
    # ls /var/spool/cron/crontabs

Ejemplo 4-5 Eliminación de un archivo crontab

En los siguientes ejemplos, se muestra cómo el usuario smith usa el comando crontab -r para eliminar su propio archivo crontab.

$ ls /var/spool/cron/crontabs
adm     jones     root    smith    sys     uucp
$ crontab -r
$ ls /var/spool/cron/crontabs
adm     jones    root    sys    uucp

Control del acceso al comando crontab

Puede controlar el acceso al comando crontab mediante dos archivos en el directorio /etc/cron.d: cron.deny y cron.allow. Estos archivos permiten que sólo los usuarios especificados realicen tareas del comando crontab, como crear, editar, visualizar o eliminar sus propios archivos crontab.

Los archivos cron.deny y cron.allow constan de una lista de nombres de usuario (un nombre de usuario por línea).

Estos archivos de control de acceso funcionan de manera conjunta como se indica a continuación:

Los privilegios de superusuario son necesarios para editar o crear los archivos cron.deny y cron.allow.

El archivo cron.deny, creado durante la instalación del software SunOS, contiene los siguientes nombres de usuario:

$ cat /etc/cron.d/cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess

Ninguno de los nombres de usuario del archivo cron.deny predeterminado puede acceder al comando crontab. Puede editar este archivo para agregar otros nombres de usuario a los que se les denegará el acceso al comando crontab.

No se proporcionó un archivo cron.allow de manera predeterminada. Por lo tanto, después de la instalación del software Oracle Solaris, todos los usuarios (excepto los usuarios indicados en el archivo cron.deny predeterminado) pueden acceder al comando crontab. Si crea un archivo cron.allow, sólo estos usuarios podrán acceder al comando crontab.

Cómo denegar el acceso al comando crontab

  1. Asuma el rol de usuario root.

    Consulte Cómo usar los derechos administrativos que tiene asignados de Administración de Oracle Solaris 11.1: servicios de seguridad.

    $ su -
    Password:
    #
  2. Edite el archivo /etc/cron.d/cron.deny y agregue nombres de usuario (un usuario por línea). Incluya a los usuarios a los que se les denegará el acceso a los comandos crontab.
    daemon
    bin
    smtp
    nuucp
    listen
    nobody
    noaccess
    username1
    username2
    username3
    .
    .
    .
  3. Verifique que el archivo /etc/cron.d/cron.deny contenga las entradas nuevas.
    # cat /etc/cron.d/cron.deny
    daemon
    bin
    nuucp
    listen
    nobody
    noaccess

Cómo limitar el acceso al comando crontab a los usuarios especificados

  1. Asuma el rol de usuario root.

    Consulte Cómo usar los derechos administrativos que tiene asignados de Administración de Oracle Solaris 11.1: servicios de seguridad.

  2. Cree el archivo /etc/cron.d/cron.allow.
  3. Agregue el rol root al archivo cron.allow.

    Si no agrega root al archivo, el acceso de superusuario a los comandos crontab será denegado.

  4. Agregue los nombres de usuario (un nombre de usuario por línea).

    Incluya a los usuarios que tendrán permiso para utilizar el comando crontab.

    root
    username1
    username2
    username3
    .
    .
    .

Ejemplo 4-6 Limitación del acceso al comando crontab a los usuarios especificados

El siguiente ejemplo muestra un archivo cron.deny que impide que los nombres de usuario jones, temp y visitor accedan al comando crontab.

$ cat /etc/cron.d/cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess
jones
temp
visitor

El siguiente ejemplo muestra un archivo cron.allow. Los usuarios root, jones y smith son los únicos usuarios que pueden acceder al comando crontab.

$ cat /etc/cron.d/cron.allow
root
jones
smith

Cómo verificar el acceso limitado al comando crontab

Para verificar si un usuario específico puede acceder al comando crontab, utilice el comando crontab -l mientras está conectado en la cuenta de usuario.

$ crontab -l

Si el usuario puede acceder al comando crontab, y ya ha creado un archivo crontab, el archivo se muestra. De lo contrario, si el usuario puede acceder al comando crontab, pero no existe ningún archivo crontab, se muestra un mensaje similar al siguiente:

crontab: can't open your crontab file

Este usuario aparece en el archivo cron.allow (si el archivo existe) o no aparece en el archivo cron.deny.

Si el usuario no puede acceder al comando crontab, aparece el siguiente mensaje, independientemente de que exista un archivo crontab anterior:

crontab: you are not authorized to use cron. Sorry.

Este mensaje significa que el usuario no aparece en el archivo cron.allow (si el archivo existe) o aparece en el archivo cron.deny.