GNU/Linux >> Tutoriales Linux >  >> Linux

Programar una tarea con Linux al mando

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ía13:3013: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.


Linux
  1. Programación de tareas con el comando cron de Linux

  2. Diagnosticar problemas de conectividad con el comando ping de Linux

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

  4. Encuentre el tiempo de ejecución de un comando o proceso en Linux

  5. Comando JQ en Linux con ejemplos

15 comandos ps de Linux con ejemplos

Seguimiento del tiempo con Timewarrior en la línea de comandos

Cómo encontrar archivos con el comando fd en Linux

El comando del temporizador en Linux

Programar trabajos en Linux con el comando 'at'

Entendiendo el comando time en Linux