GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo usar Linux al mando

Introducción

El at command es una utilidad de línea de comandos de Linux que se utiliza para programar un trabajo para su posterior ejecución. La utilidad lee los comandos de la entrada estándar y los agrupa en un at trabajo, que se ejecuta solo una vez.

La alternativa para at es un trabajo cron. Sin embargo, mientras at los trabajos se ejecutan solo una vez, los trabajos cron son eventos recurrentes.

En este tutorial, aprenderá a usar at comando y vea ejemplos útiles para la programación de comandos.

Requisitos previos

  • Un sistema que ejecuta Linux.
  • Una cuenta de usuario con privilegios sudo.

Instalar el comando at

Según la distribución de Linux que esté usando, el at Es posible que el comando no esté preinstalado.

Comprobar si at se instala ingresando el nombre del comando en la terminal:

Si la utilidad no está preinstalada, el mensaje de salida indica Command 'at' not found .

Instalar en Ubuntu y Debian

Siga los pasos a continuación para instalar at en Ubuntu o Debian:

1. Actualice el repositorio de paquetes:

sudo apt update

2. Instale el at comando ejecutando:

sudo apt install at

Instalar en CentOS y Fedora

Siga los pasos a continuación para instalar at en CentOS o Fedora:

1. Actualice el repositorio de paquetes:

sudo yum -y update

2. Ejecute el siguiente comando para instalar at :

sudo yum install at

Habilitar demonio de programación

El demonio de programación se ejecuta en segundo plano y ejecuta los trabajos programados a tiempo.

Ejecute el siguiente comando después de instalar at paquete para habilitar el atd demonio de programación y configúrelo para que se inicie en el arranque del sistema.

sudo systemctl enable --now atd

Linux en Sintaxis y opciones de comandos

La sintaxis de at el comando es:

at [option] runtime

Las opciones le permiten ver o eliminar trabajos programados y personalizar at programación de trabajos de comando. Las opciones disponibles son:

[runtime] Expresiones de tiempo

Programe un trabajo usando expresiones de tiempo absoluto o expresiones de tiempo relativas al tiempo de configuración del trabajo.

Las expresiones de tiempo absoluto disponibles son:

  • YYMMDDhhmm[.ss] . Especifique un año, mes, día, hora, minuto y, opcionalmente, segundos abreviados.
  • CCYYMMDDhhmm[.ss] . Especifique un año completo, mes, día, hora, minuto y, opcionalmente, segundos.
  • now . Indica el día y la hora actual y la ejecución inmediata.
  • midnight . Indica las 00:00 a. m.
  • noon . Indicando las 12:00 p. m.
  • teatime . Interpretado como 4 PM.
  • AM . Indica la hora antes de las 12:00 p. m.
  • PM . Indica la hora después de las 12:00 p. m.
  • today . El día actual.
  • tomorrow . El día después del día actual.

Por ejemplo, el siguiente comando programa una invocación del comando echo a las 5:00 p. m.:

echo "hello" | at 5PM

Especifique una expresión de tiempo relativo agregando un signo más (+ ), la cantidad y uno de los siguientes:

  • minutes
  • hours
  • days
  • weeks
  • months
  • years

Usar expresiones de tiempo como tomorrow o tuesday , programa los trabajos en esos días a la hora actual. Especifique aún más la hora usando + personaje.

Por ejemplo, el siguiente comando programa un echo invocación del comando cinco minutos después de programar el trabajo:

echo "hello" | at now +5 minutes

Medio ambiente

El SHELL el valor de la variable de entorno determina qué shell (bash, zsh, etc.) at utiliza el comando para ejecutar el trabajo. Al programar el trabajo, el comando advierte al usuario qué shell utilizará durante la ejecución.

Linux en ejemplos de comandos

La siguiente sección demuestra útiles at ejemplos de comandos.

Programar un trabajo de forma interactiva

El at le permite programar un trabajo usando el comando interactivo at oportuno. Abra el aviso interactivo usando la siguiente sintaxis:

at [runtime]

El indicador interactivo le permite ingresar qué comandos ejecutar en el momento especificado. El comando también imprime una advertencia que indica qué shell usará el comando.

Salga del indicador interactivo y guarde el trabajo programado presionando Ctrl + D . Cancele el trabajo con Ctrl + C .

Por ejemplo:

En el ejemplo anterior, programamos un trabajo para las 5 p. m., lo que abre el indicador interactivo. El trabajo programado es ejecutar el echo y la utilidad usa el shell bash estándar.

Transferir un trabajo a at

Programe un trabajo sin el at interactivo solicitud mediante la canalización de comandos a at y especificando el tiempo de ejecución. Usar echo o printf para pasar los comandos a at .

Por ejemplo:

echo "command_to_run" | at [runtime]

Para programar una at trabajo que envía el echo salida del comando a un archivo, use:

echo "hello" >> example.txt | at now

Use el comando cat para verificar si el archivo existe para asegurarse de que se ejecutó el trabajo:

cat example.txt

Ver un trabajo programado

El -c La opción muestra el contenido de un trabajo programado previamente. La opción es útil si olvida cuál era el trabajo o desea verificar la hora programada.

Ver el contenido de un at programado trabajo usando la siguiente sintaxis:

at -c [job_number]

Obtenga el número de trabajo ejecutando atq Comando primero para enumerar todos los trabajos pendientes.

Por ejemplo:

En el ejemplo anterior, primero solicitamos una lista de todos los trabajos pendientes para obtener los números de trabajo y luego mostramos el contenido del trabajo 14 en la salida estándar.

Lista de trabajos programados

El at La utilidad le permite revisar qué trabajos aún están en la cola y pendientes de ejecución. Hay dos formas de ver los trabajos pendientes:

  • Ejecute atq comando.
  • Use -l opción.

Por ejemplo:

at -l

El resultado muestra el número de trabajo pendiente, la fecha, la hora, el año y la cola para el usuario actual. Para enumerar los trabajos pendientes de todos los usuarios, ejecute el comando con sudo .

sudo atq

En el ejemplo anterior, ejecutar atq muestra trabajos pendientes solo para el usuario actual. Ejecutando atq con sudo muestra trabajos pendientes para todos los usuarios.

Enviar una notificación por correo electrónico sobre la ejecución

El at La utilidad envía notificaciones por correo electrónico sobre los trabajos completados de forma predeterminada. Las notificaciones por correo electrónico requieren una dirección de correo electrónico que funcione configurada para su cuenta de usuario, y el sistema debe poder enviar correos electrónicos.

Para dar instrucciones a at para enviar notificaciones por correo electrónico sobre la finalización del trabajo, incluso si no hay salida, especifique el -m opción.

Por ejemplo:

rm example.txt | at -m tomorrow

El comando anterior programa el trabajo mañana a la hora actual. Cuando se completa, el at La utilidad notifica al usuario utilizando la dirección de correo electrónico configurada para el usuario bosko .

Ejecutar trabajos sin notificar

Para evitar recibir notificaciones por correo electrónico sobre trabajos completados, especifique el -M opción al programar un at trabajo.

Por ejemplo:

echo "shutdown -h now" | at -M 00:00

En el ejemplo anterior, programamos un apagado del sistema para la medianoche y usamos el -M opción para evitar que la utilidad envíe la notificación por correo electrónico.

Eliminar un trabajo programado

Para eliminar at programadas trabajos, especifique el -r o ejecute la opción atrm comando junto con la identificación del trabajo. Obtenga la identificación del trabajo ejecutando atq o utilizando el -l opción.

En el siguiente ejemplo, eliminamos el trabajo 12:

Restringir usuarios

El at el paquete utiliza dos archivos para restringir at y batch acceso de comando:

  • /etc/at.allow
  • /etc/at.deny

Edite los archivos para permitir que solo ciertos usuarios creen, eliminen o muestren at pendientes. trabajos. Los archivos son una lista de nombres de usuario que pueden o no acceder a at comandos Un carácter de nueva línea separa los nombres de usuario y no se permiten espacios en blanco.

Importante :Si /etc/at.allow el archivo existe, solo los usuarios enumerados en él pueden usar at o batch y el /etc/at.deny el archivo es ignorado. Si /etc/at.allow el archivo no existe, los usuarios enumerados en /etc/at.deny no se les permite usar at o batch . El usuario root siempre puede ejecutar at comandos, independientemente de los archivos de control de acceso.

Edite el /etc/at.deny archivo con privilegios sudo para denegar el acceso de un usuario a at comandos En el siguiente ejemplo, editamos el archivo usando el editor vi:

sudo vi /etc/at.deny

Después de agregar un nombre de usuario a la lista, ejecute at El comando que usa la cuenta de usuario restringida da como resultado el siguiente mensaje:

Ejecutar trabajos cuando la carga del sistema lo permita

El batch comando (-b opción) programa una at trabajo para su ejecución cuando el promedio de carga del sistema cae por debajo de 1.5. La ejecución de trabajos cuando la carga del sistema es baja evita el consumo de todos los recursos del sistema y garantiza un funcionamiento óptimo del sistema.

Por ejemplo, el siguiente trabajo se ejecuta tan pronto como la carga del sistema cae por debajo de 1.5:

batch
echo "Hello world!" >> hello.txt

Ubuntu
  1. Cómo usar el comando grep de Linux

  2. Cómo usar el comando de historial en Linux

  3. Cómo usar el comando Apt-Get en Linux

  4. Cómo usar el comando id en Linux

  5. Cómo usar el comando "pantalla" en Linux

Cómo usar el comando fd en el sistema Linux

Cómo usar el comando Jobs en Linux

¿Cómo usar el comando wget en Linux?

¿Cómo usar el comando xargs en Linux?

Cómo usar el comando RPM en Linux

Cómo usar el comando which en Linux

    Opción Descripción
    -V Imprime el número de versión del programa en la salida estándar.
    -q [queue] Utiliza el [queue] especificado que consta de una sola letra, que va desde a -z y A -Z . El a la cola es la predeterminada para at y el b la cola es la predeterminada para batch . Las colas con letras más altas se ejecutan con mayor amabilidad.
    Enviar un trabajo a una cola con una letra mayúscula trata el trabajo como enviado a batch . El batch las reglas de promedio de carga se aplican una vez que es el momento de ejecutar el trabajo. Asignar una cola a atq hace que muestre solo los trabajos pendientes en esa cola.
    -m Envía un correo electrónico al usuario una vez finalizado el trabajo, incluso si no hubo resultados. Requiere una dirección de correo electrónico configurada para el usuario que programó el trabajo.
    -f [file] Lee el trabajo del [file] especificado en lugar de desde la entrada estándar.
    -b Un alias para batch . Programa trabajos y los ejecuta en un batch cola cuando el promedio del nivel de carga del sistema es inferior a 1,5.
    -l Un alias para atq . Enumera los trabajos pendientes del usuario. Si el usuario es superusuario, enumera los trabajos pendientes de todos los usuarios.
    -d Un alias para atrm . Elimina los trabajos programados, identificados por su número de trabajo.
    -v Muestra el tiempo de ejecución del trabajo antes de leer el trabajo. El formato de hora es Thu Feb 20 14:50:00 1997 .
    -c Cats el trabajo especificado, mostrando su contenido en la salida de línea de comandos estándar.
    -t [time_arg] Programa un trabajo para el tiempo especificado por el [time_arg] argumento. El formato de hora aceptado es [[CC]YY]MMDDhhmm .