GNU/Linux >> Tutoriales Linux >  >> Linux

Al mando en Linux

at es una utilidad de línea de comandos que le permite programar comandos para que se ejecuten en un momento determinado. Empleos creados con at se ejecutan una sola vez.

En este artículo, explicaremos cómo usar at y sus utilidades complementarias batch , atq , atrm para ver, eliminar y crear trabajos para ejecutarlos más tarde.

Instalando at #

Dependiendo de la distribución, at puede o no estar presente en su sistema Linux.

Si at no está instalado, puedes instalarlo fácilmente usando el administrador de paquetes de tu distribución.

  • Instalar at en Ubuntu y Debian

    sudo apt update sudo apt install at
  • Instalar at en CentOS y Fedora

    sudo yum install at

Una vez que el programa esté instalado, asegúrese de atd , el demonio de programación se está ejecutando y está configurado para iniciarse en el arranque:

sudo systemctl enable --now atd

Cómo usar el at Comando #

La sintaxis simplificada para at El comando es el siguiente:

at [OPTION...] runtime

El at El comando toma la fecha y la hora (runtime ) cuando desee ejecutar el trabajo como un parámetro de línea de comando y el comando que se ejecutará desde la entrada estándar.

Creemos un trabajo que se ejecutará a las 9:00 am:

at 09:00

Una vez que presionas Enter , se le presentará el at símbolo del sistema que generalmente comienza con at> . También verá una advertencia que le indica el shell en el que se ejecutará el comando:

warning: commands will be executed using /bin/sh
at>

Introduzca uno o más comandos que desee ejecutar:

tar -xf /home/linuxize/file.tar.gz

Cuando termine de ingresar los comandos, presione Ctrl-D para salir del aviso y guardar el trabajo:

at> <EOT>
job 4 at Tue May  5 09:00:00 2020

El comando mostrará el número de trabajo y la hora y fecha de ejecución.

También hay otras formas de pasar el comando que desea ejecutar, además de ingresar el comando en at oportuno. Una forma es usar echo y canalice el comando a at :

echo "command_to_be_run" | at 09:00

Otra opción es utilizar el documento Aquí:

at 09:00 <<ENDcommand_to_be_runEND

Para leer los comandos de un archivo en lugar de la entrada estándar, invoque el comando con -f opción que sigue a la ruta del archivo. Por ejemplo, para crear un trabajo que ejecutará el script /home/linuxize/script.sh :

at 09:00 -f /home/linuxize/script.sh

De forma predeterminada, si el comando produce una salida, at enviará un correo electrónico que incluye la salida al usuario una vez que se complete el trabajo. Invocar at con el -M opción para suprimir la notificación por correo electrónico:

at 09:00 -M

Utilice el -m para enviar un correo electrónico incluso si no hay salida:

at 09:00 -m

batch Comando #

batch o su alias at -b programa trabajos y los ejecuta en una cola por lotes cuando el nivel de carga del sistema lo permite. De forma predeterminada, los trabajos se ejecutan cuando el promedio de carga del sistema es inferior a 1,5. El valor de la carga se puede especificar al invocar el atd demonio. Si el promedio de carga del sistema es superior al especificado, los trabajos esperarán en la cola.

Para crear un trabajo con batch , pase los comandos que desea ejecutar:

echo "command_to_be_run" | batch

Especificando el Tiempo de Ejecución #

El at La utilidad acepta una amplia gama de especificaciones de tiempo. Puede especificar la hora, la fecha y el incremento desde la hora actual:

  • Tiempo - Para especificar una hora, utilice el HH:MM o HHMM forma. Para indicar un formato de hora de 12 horas, use am o pm después del tiempo También puede usar cadenas como now , midnight , noon , o teatime (16:00). Si se pasa el tiempo especificado, el trabajo se ejecutará al día siguiente.

  • Fecha - El comando le permite programar la ejecución del trabajo en una fecha determinada. La fecha se puede especificar usando el nombre del mes seguido del día y un año opcional. Puede usar cadenas, como today , tomorrow , o día de la semana. La fecha también se puede indicar mediante el MMDD[CC]YY , MM/DD/[CC]YY , DD.MM.[CC]YY o [CC]YY-MM-DD formatos.

  • Incremento - at también acepta incrementos en la unidad de tiempo now + count time-unit formato, donde count es un número y time-unit puede ser una de las siguientes cadenas:minutes , hours , days , o weeks .

Se pueden combinar la hora, la fecha y el incremento, aquí hay algunos ejemplos:

  • Programe un trabajo para el próximo domingo a una hora diez minutos más tarde que la hora actual:

    at sunday +10 minutes
  • Programe un trabajo para que se ejecute a la 1:00 p. m. dentro de dos días:

    at 1pm + 2 days
  • Programe un trabajo para que se ejecute a las 12:30 del 21 de octubre de 2020:

    at 12:30 102120
  • Programe un trabajo para que se ejecute dentro de una hora:

    at now +1 hours

También puede especificar una fecha y hora en el [[CC]YY]MMDDhhmm[.ss] usando el -t opción. Aquí hay un ejemplo:

at -t 202005111321.32

Especificando cola #

Por defecto, los trabajos creados con at están programados en la cola llamada a y trabajos creados con batch están programados en el b cola.

Las consultas pueden tener un nombre de a a z y A a Z . Las colas con letras más bajas funcionan con menos amabilidad, lo que significa que tienen prioridad sobre las que tienen letras más altas.

Puede especificar la cola con -q opción. Por ejemplo, para establecer un trabajo en el L cola, ejecutaría:

at monday +2 hours -q L

Lista de trabajos pendientes #

Para enumerar los trabajos pendientes del usuario, ejecute atq o at -l comando:

atq

La salida enumerará todos los trabajos, uno por línea. Cada línea incluye el número de trabajo, la fecha, la hora, la letra de la cola y el nombre de usuario.

9	  Tue May  5 12:22:00 2020 a linuxize
12	Wed Oct 21 12:30:00 2020 a linuxize
15	Tue May  5 09:00:00 2020 a linuxize
6	  Tue May  5 09:00:00 2020 a linuxize
13	Mon May  4 23:08:00 2020 a linuxize
11	Wed Jul  1 10:00:00 2020 a linuxize
4	  Tue May  5 09:00:00 2020 a linuxize

Cuando atq se invoca como usuario administrativo, enumerará los trabajos pendientes de todos los usuarios.

Eliminación de trabajos pendientes #

Para eliminar un trabajo pendiente, invoque atrm o at -r comando seguido del número de trabajo. Por ejemplo, para eliminar el trabajo con el número nueve, ejecutaría:

atrm 9

Usuarios restringidos #

El /etc/at.deny y /etc/at.allow Los archivos le permiten controlar qué usuarios pueden crear trabajos con at o batch dominio. Los archivos constan de una lista de nombres de usuario, un nombre de usuario por línea.

Por defecto, solo el /etc/at.deny el archivo existe y está vacío, lo que significa que todos los usuarios pueden usar at dominio. Si desea denegar el permiso a un usuario específico, agregue el nombre de usuario a este archivo.

Si /etc/at.allow El archivo existe, solo los usuarios que se enumeran en este archivo pueden usar at comando.

Si ninguno de los archivos existe, solo los usuarios con privilegios administrativos pueden usar at comando.

Conclusión #

El at La utilidad lee los comandos de la entrada estándar y los ejecuta en un momento posterior. A diferencia de crontab, los trabajos creados con at se ejecutan una sola vez.

Para más información sobre todas las opciones disponibles del at tipo de comando man at en tu terminal.

Si tiene alguna pregunta, no dude en dejar un comentario.


Linux
  1. Comando ifconfig de Linux

  2. comando linux mv

  3. Linux du comando

  4. Comando IP de Linux

  5. Comando cd de linux

Comando libre en Linux

Comando Sudo en Linux

Localizar comando en Linux

Comando Du en Linux

Comando W en Linux

Comando Df en Linux