GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo programar tareas usando at en Linux

El demonio atd

El demonio atd permite a los usuarios enviar trabajos para que se realicen en un momento posterior, como "a las 2:00 am". Para utilizar el demonio atd, debe estar ejecutándose. Los usuarios pueden confirmar que atd se está ejecutando simplemente examinando una lista de procesos en ejecución:

$ ps aux | grep atd
daemon   4730  0.0  0.2  1420  532  ?      S  15:42  0:00   /usr/sbin/atd 
madonna  5570  0.0  0.2  3572  640  pts/2  S  16:43  0:00   grep atd

Observe que la séptima columna especifica con qué terminal está asociado un proceso. Para el comando grep de blondie, la terminal es pts/2, que probablemente se refiere a un shell de red o una terminal gráfica dentro de una sesión X. Tenga en cuenta que el demonio atd no tiene una terminal asociada. Una de las características definitorias de un demonio es que abandona su asociación con el terminal que lo inició.

Enviar trabajos con arroba

El comando at se usa para enviar trabajos a atd demonio que se ejecutará en un momento específico. Los comandos que se ejecutarán se envían como un script (con el interruptor de línea de comando -f) o se ingresan directamente a través de stdin. La salida estándar del comando se envía por correo al usuario.

at [-f filename | -m] TIME
Cambiar Efecto
-f nombre de archivo ejecutar el script especificado por nombre de archivo
-m Notificar al usuario por correo electrónico cuando haya terminado, incluso si no hay salida.

La hora del día se puede especificar usando HH:MM, con el sufijo "am" o "pm". También se pueden utilizar los términos "medianoche", "mediodía" y "hora del té". (Has leído correctamente, "hora del té".) También se puede especificar una fecha utilizando varios formatos, incluidos MM/DD/YY. La página man at(1) proporciona muchos más detalles.

Al luchador hogan le gustaría imprimir un archivo que contenga todos los correos de fans que ha recibido, fanmail.txt. Sin embargo, está un poco preocupado porque comparte la impresora con Ventura, quien también usa mucho la impresora. Queriendo evitar una pelea, hogan decide retrasar su impresión hasta las 2:00 de la mañana.

$ at 2:00 am
warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
at> lpr fanmail.txt
at> CTRL-D
job 7 at 2020-06-17 02:00

Porque hogan no usó la -f interruptor de la línea de comando, el comando at incitó a hogan a escribir sus comandos usando stdin (el teclado). Afortunadamente, hogan sabe que CTRL-D, cuando se ingresa directamente desde una terminal, indica un "fin de archivo". Alternativamente, podría haber canalizado el comando a stdin directamente:

$ echo "lpr fanmail" | at 2:00 am
warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
job 7 at 2003-06-17 02:00

A continuación, hogan confirma que su trabajo se ha registrado mediante atq.

$ atq
7     2003-06-17 02:00  a hogan

Por último, hogan recuerda que ventura está de vacaciones, por lo que puede imprimir su correo de fans sin incidentes. Decide cancelar su trabajo e imprimir el archivo directamente.

$ atrm 7 
$ atq 
$ lpr fanmail.txt

Retrasar tareas con lotes

El lote El comando, como el comando at, se usa para diferir tareas hasta un momento posterior. A diferencia del comando at, el lote no ejecuta el comando en un momento específico, sino que espera hasta que el sistema no esté ocupado con otras tareas, siempre que sea ese momento. Si la máquina no está ocupada cuando se envía el trabajo, el trabajo podría ejecutarse inmediatamente. El daemon atd monitorea el promedio de carga del sistema y espera a que caiga por debajo de 0.8 antes de ejecutar el trabajo.

El comando por lotes tiene una sintaxis idéntica al comando at, donde los trabajos pueden especificarse usando stdin o enviarse como un archivo por lotes con -f conmutador de línea de comandos. Si se especifica una hora, el lote retrasará la observación de la máquina hasta la hora especificada. En ese momento, el lote comenzará a monitorear el promedio de carga del sistema y ejecutará el trabajo cuando el sistema no esté ocupado.


Linux
  1. Consejos de Linux para usar cron para programar tareas

  2. Programar una tarea con Linux al mando

  3. Cómo usar el comando 'at' para programar una tarea en un momento dado o posterior en Linux

  4. Cómo escribir texto en la imagen usando el comando de Linux

  5. Cómo reiniciar Linux usando la línea de comandos

Cómo tomar capturas de pantalla en Linux usando Scrot

Cómo crear un directorio en Linux usando el comando mkdir

Cómo ejecutar un comando periódicamente en Linux usando Watch

Cómo hacer una copia de seguridad del sistema de archivos de Linux usando el comando dump

Cómo automatizar trabajos diarios en Linux usando (at)

Programar trabajos en Linux con el comando 'at'