-
@ ΜΟΛΩΝ ΛΑΒΕ
2025-05-27 20:37:22At
at
é uma ferramenta de agendamento de tarefas em Linux usada para executar comandos únicos em um horário e data específicos. Diferente docron
, que serve para tarefas recorrentes, oat
executa uma única vez.Como usar o
at
1. Verifique se o
at
está instaladobash which at
Se não estiver instalado:
bash sudo apt install at
E inicie o serviço (caso necessário):
bash sudo systemctl enable --now atd
2. Agendar um comando
bash at 10:00 AM tomorrow
Você será levado a um prompt interativo. Digite o comando desejado e finalize com
Ctrl + D
.Exemplo 1:
bash at 09:00 AM next Monday
(Entrada do usuário no prompt do
at
)echo "Relatório pronto" >> ~/relatorio.txt Ctrl + D
Resultado: O trecho "relatório pronto" será incluído no documento relatorio.txt.
Exemplo 2:
bash at 21:00 Apr 15
Entrada no prompt:
notify-send "Hora de fazer backup!" Ctrl + D
Resultado: Às 21h do dia 15 de abril, o sistema exibirá uma notificação.
Formatos de Data e Hora Válidos
-
now + 1 minute
-
midnight
-
tomorrow
-
5pm
-
08:30
-
7:00am next friday
-
noon + 2 days
Visualizar tarefas agendadas
bash atq
Remover uma tarefa agendada
bash atrm <número_da_tarefa>
Você encontra o número da tarefa com
atq
.
cron
O
cron
é um utilitário de agendamento de tarefas baseado no tempo. Permite executar comandos ou scripts automaticamente em horários específicos. Ele depende do daemoncrond
, que deve estar ativo e em execução contínua no sistema.Arquivo de configuração:
-
Cada usuário pode editar seu próprio agendador com:
bash crontab -e
-
O formato padrão de uma linha no crontab:
m h dom mon dow comando
|Campo|Descrição|Valores possíveis| |---|---|---| |m|Minuto|0–59| |h|Hora|0–23| |dom|Dia do mês|1–31| |mon|Mês|1–12| |dow|Dia da semana|0–6 (0 = Domingo)| |comando|Comando a executar|Qualquer comando shell válido|
Exemplos:
-
Executar um script a cada minuto:
bash * * * * * /usr/local/bin/execute/this/script.sh
-
Fazer backup no dia 10 de junho às 08:30:
bash 30 08 10 06 * /home/sysadmin/full-backup
-
Backup todo domingo às 5h da manhã:
bash 0 5 * * 0 tar -zcf /var/backups/home.tgz /home/
Limitações:
Tarefas agendadas com
cron
não são executadas se o computador estiver desligado ou suspenso no horário programado. O comando é simplesmente ignorado. Usecron
para tarefas com data/hora exatas.
anacron
O
anacron
é uma alternativa aocron
voltada para sistemas que não ficam ligados o tempo todo, como notebooks e desktops. Ele garante a execução de tarefas periódicas (diárias, semanais, mensais) assim que possível após o sistema ser ligado, caso tenham sido perdidas. Useanacron
para tarefas periódicas tolerantes a atrasos.Verificação da instalação:
bash anacron -V
Instalação (caso necessário):
bash sudo apt update sudo apt install anacron
Arquivo de configuração:
/etc/anacrontab
Acessado com:
sudo nano /etc/anacrontab
Formato de cada linha:
PERIOD DELAY IDENT COMMAND
| Campo | Descrição | | ------- | ------------------------------------------- | | PERIOD | Intervalo em dias (1 = diário, 7 = semanal) | | DELAY | Minutos a esperar após o boot | | IDENT | Nome identificador da tarefa | | COMMAND | Comando ou script a ser executado |
Exemplo:
bash 1 3 limpeza-temporarios /home/usuario/scripts/limpar_tmp.sh
Executa o script uma vez por dia, 3 minutos após o sistema ser ligado.
Nota: Não é necessário usar
run-parts
nemcron.daily
para tarefas personalizadas. Basta apontar diretamente para o script desejado. Orun-parts
só deve ser usado quando se deseja executar todos os scripts de um diretório.Ativação do serviço:
bash sudo systemctl enable --now anacron
Verificação de status:
bash systemctl status anacron
Logs de execução:
bash grep anacron /var/log/syslog
/etc/anacrontab
: Arquivo de Configuração doanacron
O arquivo
/etc/anacrontab
define tarefas periódicas a serem executadas peloanacron
, garantindo que comandos sejam executados mesmo que o computador esteja desligado no horário originalmente programado.Cabeçalho Padrão
bash SHELL=/bin/sh HOME=/root LOGNAME=root
-
SHELL
: Shell padrão utilizado para executar os comandos. -
HOME
: Diretório home usado durante a execução. -
LOGNAME
: Usuário associado à execução das tarefas.
Entradas Padrão do Sistema
bash 1 5 cron.daily run-parts --report /etc/cron.daily 7 10 cron.weekly run-parts --report /etc/cron.weekly @monthly 15 cron.monthly run-parts --report /etc/cron.monthly
|Campo|Significado| |---|---| |
1
|Executa a tarefa diariamente (a cada 1 dia)| |5
|Espera 5 minutos após o boot| |cron.daily
|Identificador da tarefa (usado nos logs)| |run-parts
|Executa todos os scripts dentro do diretório|Diretórios utilizados:
-
/etc/cron.daily
: scripts executados uma vez por dia -
/etc/cron.weekly
: scripts semanais -
/etc/cron.monthly
: scripts mensais
O comando
run-parts
executa automaticamente todos os scripts executáveis localizados nesses diretórios.Personalização
Para adicionar tarefas personalizadas ao
anacron
, basta adicionar novas linhas com o formato:PERIOD DELAY IDENT COMMAND
Exemplo:
bash 1 3 limpeza-temporarios /home/usuario/scripts/limpar_tmp.sh
Executa o script
limpar_tmp.sh
diariamente, com 3 minutos de atraso após o boot.Importante: Não é necessário — nem recomendado — usar
run-parts
quando a intenção é executar um script individual. Orun-parts
espera um diretório e ignora arquivos individuais. Usarrun-parts
com um script individual causará falha na execução. -