Você precisa executar um comando apenas uma vez esta noite, amanhã de manhã ou após uma janela de manutenção? at evita criar uma linha cron que você acabará esquecendo. No entanto, ele tem uma limitação: o serviço atd deve estar em execução, e o comando será executado por /bin/sh, e não necessariamente pelo seu shell interativo.
A metodologia abaixo permite agendar, controlar e depois remover um job antes de sua execução. Utilize um caminho absoluto para os scripts e os arquivos de log. Um job at não se beneficia do seu terminal nem das suas configurações Bash.

Instalar at e verificar o serviço
No Debian, Ubuntu e suas derivações, instale o pacote e depois ative o daemon. No Fedora, RHEL ou Rocky Linux, substitua apt por dnf.
sudo apt update
sudo apt install at
sudo systemctl enable --now atd
systemctl status atd --no-pager
O status deve indicar active (running). Se sua conta receber uma negativa, verifique /etc/at.allow e /etc/at.deny. Esses arquivos determinam quais usuários têm permissão para submeter tarefas.
Agendar um comando sem deixar um cron
Para testar sem mexer no sistema, crie um pequeno arquivo na sua pasta pessoal em cinco minutos. Digite o comando e, em seguida, finalize a entrada com Ctrl + D.
at now + 5 minutes
mkdir -p "$HOME/at-test"
date > "$HOME/at-test/executed-at.txt"
# então pressione Ctrl+D
Para uma intervenção real, evite caminhos relativos. O job a seguir reinicia um serviço amanhã às 02:30 e mantém stdout e stderr em um log conhecido:
at 02:30 tomorrow
/usr/bin/systemctl restart meu-serviço.service >> /var/log/meu-serviço-at.log 2>&1
# então pressione Ctrl+D
Não agende um reinício ou uma modificação remota sem ter verificado o comando manualmente. Se você estiver trabalhando via SSH, mantenha uma segunda sessão aberta antes de uma mudança que possa cortar a rede ou o serviço.
Revisar o job e verificar a hora da máquina
atq exibe os jobs em espera com seu identificador. at -c permite ver o script realmente registrado. Esta leitura é útil quando uma variável, um diretório atual ou uma redireção conta para seu comando.
atq
at -c 7
timedatectl status
Substitua 7 pelo número exibido por atq. Verifique também o fuso horário com timedatectl status. A data digitada no at é interpretada pela máquina que executa o daemon. Um servidor configurado para UTC não iniciará necessariamente o job na hora exibida em seu terminal.
Cancelar um job antes de sua execução
A remoção é imediata. Recupere o identificador, remova o job e depois relance atq para confirmar que ele desapareceu.
atrm 7
atq
Use at para uma ação pontual: uma purgação após migração, um reinício único ou um teste diferido. Para uma tarefa repetida, considere usar cron e crontab ou um timer systemd. Você evitará principalmente transformar um comando planejado uma vez em uma automação esquecida.