37.2. At y Batch

Mientras que cron se usa para programar tareas, el comando at se usa para programar una única tarea en un tiempo específico. El comando batch se usa para programar que se ejecute una única tarea cuando la carga promedio de los sistemas esten por debajo de 0.8.

Para poder usar at or batch debe tener el paquete RPM at instalado y el servicio atd en funcionamiento. Para determinar si el paquete está instalado, utilice el comando rpm -q at. Para determinar si el servicio se está ejecutando,utilice el comando /sbin/service atd status.

37.2.1. Configuración de tareas

Para programar una tarea no repetitiva en un tiempo específico, escriba el comando at time, en el que time es el tiempo para ejecutar el comando.

El argumento time puede ser uno de los siguientes:

La hora debe ser especificada en primer lugar, seguido por la fecha opcional. Para más información sobre el formato del tiempo, lea el fichero del texto /usr/share/doc/at-<version>/timespec.

Tras haber escrito el comando at con el argumento del tiempo, el prompt at> será visualizado. Escriba el comando a ejecutar, pulse [Intro] y escriba Ctrl-D. Se puede especificar más de un comando escribiendo cada comando seguido de la tecla [Intro]. Después de haber escrito todos los comandos, pulse [Intro] para obtener una línea en blanco y escriba Ctrl-D. Alternativamente, se puede introducir un script de shell en el intérprete de comandos y escribir Ctrl-D en una línea en blanco para salir. Si se introduce un script, la configuración de la shell usada será la configuración de la shell en la SHELL del usuario, la shell de registro del usuario o /bin/sh (el primero que se encuentre).

Si la configuración de comandos o el script intentan visualizar información, la salida de datos será enviada vía correo electrónico al usuario.

Use el comando atq para visualizar los trabajos pendientes. Remítase a la Sección 37.2.3 para más información.

El uso del comando at puede ser restringido. Remítase a la Sección 37.2.5 para más detalles.

37.2.2. Configuración de tareas Batch

Para ejecutar una tarea no repetitiva cuando el promedio de carga está por debajo de 0.8, utilice el comando batch.

Tras haber escrito el comando batch, se visualiza el intérprete de comandos at>. Escriba el comando a ejecutar, pulse [Intro] y escriba Ctrl-D. Se puede especificar más de un comando al escribir cada comando seguido de la tecla [Intro]. Tras haber escrito todos los comandos, pulse [Intro] para acceder a una línea en blanco y escriba Ctrl-D. Se puede introducir de forma alternativa un script de shell en el intérprete de comandos y escribir Ctrl-D en una línea en blanco para salir. Si se introduce un script, la shell usada es la configuración de la she en el entorno SHELL del usuario, la shell de login del usuario, o /bin/sh (todo lo que se encuentre en primer lugar). Tan pronto como el promedio de carga está bajo 0.8, se ejecutará la configuración del comando o el script.

Si la configuración de comandos o el script intentan visualizar información, la salida de datos será enviada vía correo electrónico al usuario.

Use el comando atq para visualizar los trabajos pendientes. Remítase a la Sección 37.2.3 para más información.

El uso del comando batch puede ser restringido. Remítase a la Sección 37.2.5 para más detalles.

37.2.3. Visualización de las tareas pendientes

Para visualizar las tareas pendientes at y batch, use el comando atq. Muestra una lista de las tareas pendientes, con cada trabajo en una línea. Cada línea sigue el formato de número de tarea, la fecha, la hora, el tipo de tarea y nombre de usuario. Los usuarios tan sólo pueden ver sus propias tareas. Si el usuario root ejecuta el comando atq, se visualizarán todas las tareas de todos los usuarios.

37.2.4. Opciones adicionales de la línea de comandos

Opciones adicionales de la línea de comandos para at y batch incluyen:

OpcionesDescripción
-fLee los comandos o script del shell desde un archivo en vez de ser especificados en el intérprete de comandos.
-mEnvía un email al usuario cuando se ha completado la tarea.
-vMuestra la hora en la que la tarea será ejecutada.

Tabla 37-1. Opciones de línea de comandos at y batch

37.2.5. Control de acceso a At y Batch

Los ficheros /etc/at.allow y /etc/at.deny pueden ser usados para restringir el acceso a los comandos at y batch. El formato de ambos ficheros de control de acceso es un nombre de usuario en cada línea. El espacio en blanco no está permitido en ningún fichero. El (atd) demonio at no deberá ser reiniciado si los ficheros de control de acceso son modificados. Los ficheros de control de acceso se leen cada vez que un usuario intenta ejecutar los comandos at y batch.

El usuario root siempre puede ejecutar los comandos at y batch, sin tener en cuenta los ficheros de control de acceso.

Si existe el fichero at.allow tan sólo se permitirá a los usuarios listados usar at o batch y el fichero at.deny será ignorado.

Si at.allow no existe, a los usuarios listados en at.deny no se les permitirá usar at o batch.

37.2.6. Iniciar y finalizar el servicio

Para iniciar el servicio at, use el comando /sbin/service atd start. Para detener el servicio, use el comando /sbin/service atd stop. Se le recomienda que inicie el servicio durante el momento de arranque. Remítase al Capítulo 21 para más detalles sobre como arrancar el servicio cron al momento de arranque.