Las siguientes secciones describen cómo utilizar el comando at para realizar las siguientes tareas:
Programar trabajos (comando y secuencias de comandos) para ejecutar más tarde.
Visualizar y eliminar trabajos.
Controlar el acceso al comando at.
De manera predeterminada, los usuarios pueden crear, visualizar y eliminar sus propios archivos de trabajo at. Para acceder a archivos at que pertenecen a root o a otros usuarios, debe asumir el rol de usuario root.
Al ejecutar un trabajo at, se le asigna un número de identificación de trabajo con la extensión .a. Esta designación se convierte en el nombre de archivo del trabajo y en su número de cola.
La ejecución de un archivo de trabajo at implica estos pasos:
Invocar la utilidad at y especificar una hora de ejecución de comando.
Escribir un comando o una secuencia de comandos para ejecutar más tarde.
Por ejemplo, el siguiente trabajo at elimina archivos core de la cuenta de usuario smith casi a la medianoche del último día del mes de julio.
$ at 11:45pm July 31 at> rm /home/smith/*core* at> Press Control-d commands will be executed using /bin/csh job 933486300.a at Tue Jul 31 23:45:00 2004
La tarea siguiente describe cómo crear un trabajo at.
$ at [-m] time [date]
Especifica que le envíe un correo electrónico al finalizar el trabajo.
Especifica la hora en que desea programar el trabajo. Agregue am o pm si no especifica las horas según el reloj de 24 horas. Las palabras clave aceptables son midnight, noon y now. Los minutos son opcionales.
Especifica las primeras tres (o más) letras de un mes o un día de la semana, o las palabras clave today o tomorrow.
Puede introducir más de un comando presionando Intro al final de cada línea.
A su trabajo at se le asigna un número de cola, que también es el nombre del archivo de trabajo. Este número se muestra al salir de la utilidad at.
El siguiente ejemplo muestra el trabajo at que el usuario jones creó para eliminar sus archivos de copia de seguridad a las 7:30 p. m. Utilizó la opción –m, de modo que recibirá un mensaje de correo electrónico después de que finaliza el trabajo.
$ at -m 1930 at> rm /home/jones/*.backup at> Press Control-D job 897355800.a at Thu Jul 12 19:30:00 2004
Recibió un mensaje de correo electrónico que confirmó la ejecución de su trabajo at.
Your “at” job “rm /home/jones/*.backup” completed.
El siguiente ejemplo muestra cómo jones programó un trabajo at de gran tamaño para las 4:00 a. m. del sábado. El resultado del trabajo se dirigió a un archivo llamado big.file.
$ at 4 am Saturday at> sort -r /usr/dict/words > /export/home/jones/big.file
Para comprobar los trabajos que figuran en la cola de at, utilice el comando atq.
$ atq
Este comando muestra información de estado sobre los trabajos at que ha creado.
Para verificar la creación de un trabajo at, utilice el comando atq. En el siguiente ejemplo, el comando atq confirma que los trabajos at que pertenecen a jones se han enviado a la cola.
$ atq Rank Execution Date Owner Job Queue Job Name 1st Jul 12, 2004 19:30 jones 897355800.a a stdin 2nd Jul 14, 2004 23:45 jones 897543900.a a stdin 3rd Jul 17, 2004 04:00 jones 897732000.a a stdin
Para mostrar información sobre las horas de ejecución de los trabajos at, utilice el comando at -l.
$ at -l [job-id]
donde –l job-id es el número de identificación opcional de un trabajo específico cuyo estado desea visualizar. Sin un ID, el comando muestra el estado de todos los trabajos ejecutados por el usuario.
Ejemplo 4-8 Visualización de trabajos atEn el siguiente ejemplo, se muestra la salida del comando at -l, que proporciona información sobre el estado de todos los trabajos ejecutados por el usuario.
$ at -l 897543900.a Sat Jul 14 23:45:00 2004 897355800.a Thu Jul 12 19:30:00 2004 897732000.a Tue Jul 17 04:00:00 2004
El siguiente ejemplo muestra la salida que se visualiza cuando se especifica un solo trabajo con el comando at -l.
$ at -l 897732000.a 897732000.a Tue Jul 17 04:00:00 2004
Antes de empezar
Asuma el rol root para eliminar un trabajo at que pertenece al usuario root o a otro usuario. Consulte Uso de sus derechos administrativos asignados de Protección de los usuarios y los procesos en Oracle Solaris 11.2 .
No necesita asumir el rol de usuario root para eliminar su propio trabajo at.
# at -r [job-id]
Donde la opción –r job-id especifica el número de identificación del trabajo que desea eliminar.
El comando at -l muestra los trabajos que quedan en la cola at. El trabajo cuyo número de identificación ha especificado no debe aparecer.
$ at -l [job-id]
En el siguiente ejemplo, un usuario desea eliminar un trabajo at programado para ejecutarse el 17 de julio, a las 4 a. m. En primer lugar, el usuario muestra la cola at para ubicar el número de identificación del trabajo. Luego, el usuario elimina este trabajo de la cola at. Por último, el usuario verifica que este trabajo se haya eliminado de la cola.
$ at -l 897543900.a Sat Jul 14 23:45:00 2003 897355800.a Thu Jul 12 19:30:00 2003 897732000.a Tue Jul 17 04:00:00 2003 $ at -r 897732000.a $ at -l 897732000.a at: 858142000.a: No such file or directory
Puede configurar un archivo para que controle el acceso al comando at y para que permita que sólo los usuarios especificados creen, eliminen o visualicen información de cola sobre sus trabajos at. El archivo que controla el acceso al comando at, /etc/cron.d/a.deny, consta de una lista de nombres de usuario (un nombre de usuario por línea). Los usuarios que se muestran en este archivo no pueden acceder a comandos at.
El archivo at.deny, que se crea durante la instalación del software Oracle Solaris, contiene los siguientes nombres de usuario:
daemon bin smtp nuucp listen nobody noaccess
Con privilegios de superusuario, puede editar el archivo at.deny para agregar otros nombres de usuario cuyo acceso al comando at desee restringir.
Como usuario root, edite el archivo /etc/cron.d/at.deny para agregar los nombres de usuario (un nombre de usuario por línea) a los que se les impedirá utilizar los comandos at.
daemon bin smtp nuucp listen nobody noaccess username1 username2 username3 . . .Ejemplo 4-10 Denegación de acceso a at
El siguiente ejemplo muestra un archivo at.deny que se ha editado para que los usuarios smith y jones no puedan acceder al comando at.
$ cat at.deny daemon bin smtp nuucp listen nobody noaccess jones smith
Para verificar que un nombre de usuario se agregó correctamente al archivo /etc/cron.d/at.deny, utilice el comando at -l mientras está conectado como el usuario. Por ejemplo, si el usuario que inició sesión smith no puede acceder al comando at, aparece el siguiente mensaje:
# su smith Password: # at -l at: you are not authorized to use at. Sorry.
Del mismo modo, si el usuario intenta ejecutar un trabajo at, aparece el siguiente mensaje:
# at 2:30pm at: you are not authorized to use at. Sorry.
Este mensaje confirma que el usuario aparece en el archivo at.deny.
Si se permite el acceso al comando at, el comando at -l no devuelve nada.