Terminal: ¿cómo usar 'at'?

3

¿Podría alguien proporcionar algunos usos de ejemplo para el comando at ? Estoy encontrando el man super confuso.

$ man at

Por ejemplo, si quisiéramos ejecutar un comando dentro de 10 minutos, ¿se puede hacer con at ? (y sin usar sleep )

    
pregunta user310974 19.11.2018 - 12:09

2 respuestas

2

La especificación de tiempo para "10 minutos a partir de ahora" es now +10 minutes . Por ejemplo,

echo 'open ~' | at now +10 minutes

Sin embargo, el sistema at está deshabilitado de forma predeterminada en macOS, como se menciona en la página del manual at :

IMPLEMENTATION NOTES
     Note that at is implemented through the launchd(8) daemon periodically
     invoking atrun(8), which is disabled by default.  See atrun(8) for infor-
     mation about enabling atrun.

La página de manual atrun dice que necesitas ejecutar

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
    
respondido por el lhf 19.11.2018 - 12:48
0
  

Utilizo el comando at cuando necesito realizar un procesamiento intenso en   Datos, que quiero haber ejecutado durante la noche, cuando no estoy   detrás de mi computadora Por supuesto que podría comenzar el proceso justo después de que yo   vete, pero esto es algo que tiendo a olvidar.

     

El resultado del comando no es diferente de la ejecución regular de   El script o comando.   
@Bernhard

Lo que hace
Extracto de la página del manual de at

NAME
       at, batch, atq, atrm - queue, examine or delete jobs for later execution

DESCRIPTION
       at  and  batch  read  commands  from  standard  input or a specified file
       which are to be executed at a later time, using /bin/sh.
    

Uso
El uso de las herramientas:

Usage: at [-V] [-q x] [-f file] [-mldbv] timespec ...
       at [-V] [-q x] [-f file] [-mldbv] -t time
       at -c job ...
       atq [-V] [-q x]
       atrm [-V] job ...
       batch    

at incluye 4 comandos ( at , atq , atrm y batch ). Utiliza at y batch para programar los trabajos, atq para ver lo que está programado y atrm para eliminar un trabajo antes de que se ejecute.

$ at -f <cmd> timspec

Timespec
El tiempo para ejecutar el trabajo at se puede especificar de diferentes maneras.

formulario de extracto en la página del manual

  

En permite especificaciones de tiempo bastante complejas, extendiendo el POSIX.2   estándar. Acepta horas del formulario HH: MM para ejecutar un trabajo a una   Hora específica del día. (Si esa hora ya ha pasado, el siguiente día es   asumido.) También puede especificar a la medianoche, al mediodía o la hora del té (4 pm) y   puede tener un sufijo de hora del día con AM o PM para ejecutar en el   mañana o la tarde También puedes decir qué día se ejecutará el trabajo,   dando una fecha en el formulario nombre del mes día con un año opcional, o   dando una fecha de la forma MMDD [CC] YY, MM / DD / [CC] YY, DD.MM. [CC] YY o   [CC] YY-MM-DD. La especificación de una fecha debe seguir el   Especificación de la hora del día. También puedes dar tiempos como ahora +   contar las unidades de tiempo, donde las unidades de tiempo pueden ser minutos, horas, días,   o semanas y se puede decir en para ejecutar el trabajo hoy mediante el sufijo de la   tiempo con hoy y para ejecutar el trabajo mañana mediante el sufijo del tiempo con   mañana.

Ejemplos
Digamos que tienes este script de shell.

$ cat mycrontest.sh

#!/bin/bash
 echo "It is now $(date +%T) on $(date +%A)"

Ejecución de muestra:

$ ./mycrontest.sh
It is now 18:37:42 on Friday

Muestra en las presentaciones de trabajos:

$ at -f mycrontest.sh  10pm tomorrow
job 14 at Sun Jul  8 22:00:00 2007

$ at -f mycrontest.sh 2:00 tuesday
job 15 at Tue Jul 10 02:00:00 2007

$ at -f mycrontest.sh 2:00 july 11
job 16 at Wed Jul 11 02:00:00 2007

$ at -f mycrontest.sh 2:00 next week
job 17 at Sat Jul 14 02:00:00 2007

Créditos a @slm

    
respondido por el Mateus Ribeiro 19.11.2018 - 12:36

Lea otras preguntas en las etiquetas