Como agendar trabalhos únicos no Linux usando at

Como agendar trabalhos únicos no Linux usando at

A gestão do tempo é uma arte difícil de dominar. Felizmente, com a ajuda da tecnologia, você pode automatizar e delegar tarefas comuns ao seu computador. Ao contrário dos humanos, os PCs são muito bons em executar tarefas repetitivas em um tempo definido com precisão.

No Linux, você pode executar tarefas repetitivas usando ferramentas como cron. Além disso, você também pode agendar e executar tarefas únicas usando o comando at .

Instalando no Linux

O comando at não faz parte dos utilitários padrão do Linux na maioria das distros. Felizmente, você pode instalá-lo facilmente usando seu gerenciador de pacotes, independentemente da distro que estiver usando.

Em sistemas baseados em Debian, como Ubuntu, MX Linux e Pop!_OS, você pode instalar executando:

sudo apt install at

Se você estiver usando uma distribuição baseada em RPM, como RHEL, Fedora ou Rocky Linux, use o DNF para instalar o pacote:

sudo dnf install at

Em distribuições Linux baseadas em Arch, como Manjaro, execute:

sudo pacman -S at

Iniciando o Serviço Agendador de Tarefas atd

Antes de usar o comando at, certifique-se de que o daemon de agendamento atd esteja em execução. Isso é o que o comando at usa para executar trabalhos agendados.

sudo systemctl status atd

verificando o status do agendador de tempo atd

Se o serviço atd não estiver em execução, você pode iniciá-lo usando:

sudo systemctl start atd

Agendando tarefas no Linux com at

Veja como você pode agendar um trabalho único para ser executado em um determinado momento no futuro usando at:

command | at time_stamp

Por exemplo, podemos agendar uma tarefa para listar o conteúdo de seu diretório atual usando o comando ls e gravar a saída em um arquivo daqui a um minuto.

Primeiro, mude para a pasta inicial do usuário usando o comando cd:

cd ~

Em seguida, execute o seguinte comando para agendar sua tarefa:

ls > list_items.txt | at now + 1 minutes

agendar um trabalho simples com em

A saída indicará que sua tarefa foi agendada. Depois de decorrido o tempo, você pode listar o conteúdo do seu diretório e um novo arquivo de texto com o conteúdo do diretório deve estar presente.

Se você deseja executar o comando ao meio-dia de amanhã, execute:

ls > list_items.txt | at noon tomorrow

Para horários e datas mais específicos, use o formato de data MMDDHHMM AAAA . Por exemplo, para executar o comando anterior às 13h do dia 25 de dezembro de 2023, você pode executar o comando:

ls > list_items.txt | at 12251300 2023

O comando at possui recursos muito mais avançados que permitem executar comandos específicos em um momento preciso. Dê uma olhada em suas páginas man para mais opções de comando:

man at

Agendamento de scripts no Linux usando at

Além de executar comandos individuais, você também pode usar o comando at para agendar scripts para serem executados em horários específicos.

Vamos supor que você tenha um script chamado disk_usage.sh , localizado em sua pasta pessoal. O script simplesmente imprime o uso do disco rígido em um arquivo de texto. Aqui está o roteiro:

#!/bin/bash
df -h > disk_usage.txt

Para executar este script daqui a trinta minutos, basta executar o seguinte comando:

at now + 30 minutes -f ~/disk_usage.sh

Certifique-se de que seu script seja executável, dando-lhe o modo apropriado. Para fazer isso, você pode usar o comando chmod:

sudo chmod +x disk_usage.sh

Gerenciando Pendências em Tarefas no Linux

Você pode visualizar as tarefas pendentes usando o seguinte comando:

atq

lista de empregos com atq

Para excluir uma tarefa pendente, use o seguinte formato de comando:

atrm task_number

Por exemplo, para excluir a tarefa número 12, use:

atrm 12

Automatize tarefas repetitivas no Linux com at

O comando at é uma ferramenta poderosa e versátil para executar ou executar trabalhos únicos em seu PC Linux. Além de at, você pode usar o crontab para automatizar todo tipo de tarefas, desde trabalhos simples até trabalhos complexos.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *