Las computadoras son buenas para la automatización, pero no todos saben cómo hacer que la automatización funcione. Sin embargo, es un verdadero lujo poder programar una tarea para una computadora en un momento específico y luego olvidarse de ella. Tal vez tenga un archivo para cargar o descargar en un momento específico, o necesite procesar un lote de archivos que aún no existen pero que se garantiza que existirán en un momento determinado o una configuración que necesita supervisión, o tal vez solo necesita un recordatorio amistoso para recoger pan y mantequilla en el camino a casa desde el trabajo.
Eso es lo que at
el comando es para.
¿Qué es Linux al mando?
El at
El comando es el método de la terminal de Linux que le permite programar trabajos únicos para una fecha y hora específicas. Es una automatización espontánea simplificada desde la terminal.
Instalando en
En Linux, at
El comando probablemente ya esté instalado. Puede verificar que está instalado usando at -V
dominio. Siempre que se devuelva una versión, tiene at
instalado:
$ at -V
at version x.y.z
¿Deberías intentar usar at
? y no se encuentra el comando, la mayoría de las distribuciones modernas de Linux ofrecen instalar el at
faltante paquete para usted.
También es posible que deba iniciar el demonio at, llamado atd
. En la mayoría de los sistemas Linux, utiliza el comando systemctl para habilitar los servicios y configurarlos para que se inicien automáticamente a partir de ahora:
$ sudo systemctl enable --now atd
Programar un trabajo de forma interactiva con at
Cuando usas el at
comando junto con la hora a la que desea que se ejecute una tarea, abre un at
interactivo oportuno. Puede ingresar los comandos que desea ejecutar en el momento que especificó.
Si le ayuda, puede pensar en este proceso como una aplicación de calendario, como la que probablemente usa en su teléfono móvil:primero, crea un evento en un día en algún momento y luego especifica lo que desea que suceda.
Por ejemplo, intente programar una nota para usted mismo creando una tarea para unos minutos en el futuro. Simplifique la tarea para reducir la probabilidad de fracaso. Para salir del at
indicador, presione Ctrl+D en tu teclado.
$ at 11:20 AM
warning: commands will be executed using /bin/sh
at> echo "hello world" > ~/at-test.txt
at> <EOT>
job 3 at Mon Jul 26 11:20:00 2021
Como puede ver, at
utiliza definiciones de tiempo intuitivas y naturales. No necesita conocer el reloj de 24 horas ni traducir las horas a UTC o a un formato ISO específico. En general, puede usar cualquier notación que le resulte natural, como mediodía , 13:30 , 13:37 , y así sucesivamente, para describir cuándo desea que se lleve a cabo una tarea.
Espere unos minutos y luego verifique que su tarea se haya ejecutado ejecutando cat
o el tac
Comando en el archivo que creaste:
$ cat ~/at-test.txt
hello world
Programar un trabajo con at
No tiene que usar el mensaje interactivo para programar trabajos con at
. En su lugar, puede canalizar comandos usando echo
o printf
. En este ejemplo, uso la notación ahora y en cuantos minutos quiero que se retrase la tarea:
$ echo "echo 'hello again' >> ~/at-test.txt" | at now +1 minute
Después de un minuto, verifique que se haya ejecutado el nuevo comando:
$ cat ~/at-test.txt
hello world
hello again
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
Expresiones de tiempo
El at
El comando es bastante indulgente al interpretar los tiempos. Puedes elegir entre muchos formatos, según el que más te convenga:
YYMMDDhhmm
[.ss]
(abreviatura de año, mes, día, hora, minuto y, opcionalmente, segundos)CCYYMMDDhhmm
[.ss]
(año completo, mes, día, hora, minuto y, opcionalmente, segundos)now
midnight
noon
teatime
(4 p. m.)AM
PM
Las horas y las fechas pueden ser absolutas o agregar un signo más (+ ) para hacerlos relativos a ahora . Al especificar tiempos relativos, puede usar palabras que probablemente ya use:
minutes
hours
days
weeks
months
years
Sintaxis de fecha y hora
El at
El comando es menos indulgente al distinguir las horas de las fechas. La hora debe aparecer primero, seguida del día, aunque el día se establece de manera predeterminada en el día actual y solo se requiere cuando se programa una tarea para algún día en el futuro.
Estos son ejemplos de algunas expresiones válidas:
$ echo "rsync -av /home/tux me@myserver:/home/tux/" | at 3:30 AM tomorrow
$ echo "/opt/batch.sh ~/Pictures" | at 3:30 AM 08/01/2022
$ echo "echo hello" | at now + 3 days
Ver tu cola
Una vez que haya adoptado at
y está programando tareas en lugar de garabatear notas para sí mismo en trozos de papel que se encuentran alrededor de su escritorio, es posible que desee revisar si todavía tiene trabajos en la cola.
Para ver su at
cola, use el atq
comando:
$ atq
10 Thu Jul 29 12:19:00 2021 a tux
9 Tue Jul 27 03:30:00 2021 a tux
7 Tue Jul 27 00:00:00 2021 a tux
Para eliminar una tarea de su cola, use el atrm
comando junto con el número de trabajo. Para eliminar el trabajo 7, por ejemplo:
$ atrm 7
$ atq
10 Thu Jul 29 12:19:00 2021 a tux
9 Tue Jul 27 03:30:00 2021 a tux
Para ver lo que realmente hay en un trabajo programado, debe consultar at
carrete. Solo el usuario root puede ver el at
spool, por lo que debe usar sudo
para ver el carrete o para cat
el contenido de cualquier trabajo.
Horario con Linux a las
El at
El sistema es una excelente manera de evitar olvidarse de ejecutar un trabajo más tarde en el día o de hacer que su computadora ejecute un trabajo por usted cuando no está. A diferencia de cron
, está libre de la expectativa de que un trabajo debe ejecutarse en un horario regular desde ahora hasta la perpetuidad y, en consecuencia, su sintaxis es mucho más simple que cron
sintaxis.
La próxima vez que tenga un trabajo pequeño que desee que su computadora recuerde y administre, intente con at
comando.