O cron executa comandos em agendas recorrentes sem um shell interativo. A automação repete tanto os comportamentos corretos quanto os erros, portanto teste o comando, use caminhos explícitos, restrinja os privilégios e planeje o registro e a notificação de falhas antes de agendá-lo.
Utilização de Processos · Lição 8
Tarefas Cron
Aprenda a criar, inspecionar, testar e operar com segurança tarefas recorrentes com cron.
Leitura de uma Entrada do Crontab
Uma entrada do crontab de um usuário contém cinco campos de tempo seguidos por um comando:
30 8 * * * /home/pete/scripts/change_wallpaper
Da esquerda para a direita, os campos são minuto, hora, dia do mês, mês e dia da semana. Esse exemplo é executado às 08:30 conforme o fuso horário aplicável ao daemon cron. Um asterisco significa todos os valores permitidos naquele campo.
Quando os campos de dia do mês e dia da semana estão restritos, muitas implementações do cron executam quando qualquer um deles corresponde. Confirme a semântica local antes de criar uma agenda que use os dois.
Quando 30 8 * * * command é executado?
Gerenciamento do Crontab de um Usuário
Edite o crontab do usuário atual com:
$ crontab -e
Liste as entradas instaladas antes e depois de uma alteração:
$ crontab -l
crontab -r remove todo o crontab do usuário e pode fazer isso sem abrir um editor. Não o use para remover uma única linha; edite o crontab e verifique as entradas restantes.
Qual comando lista as entradas cron instaladas do usuário atual?
Consideração do Ambiente do Cron
O cron normalmente fornece um ambiente limitado e um shell não interativo. Use caminhos absolutos de comandos e arquivos, defina explicitamente as variáveis necessárias e não dependa de aliases, do diretório atual de um terminal ou de arquivos de inicialização do shell.
Redirecione a saída e o erro padrão para um log controlado ou use um mecanismo de notificação adequado ao sistema. Proteja as credenciais com permissões restritivas e evite incorporar segredos diretamente a um comando do crontab.
Por que um comando cron deve usar caminhos e configurações de ambiente explícitos?
Testes e Prevenção de Sobreposição
Execute o script manualmente como o mesmo usuário, com um ambiente igualmente mínimo. Faça-o retornar status de saída úteis e registrar resultados com timestamps. Após a instalação, aguarde uma agenda de teste inofensiva ou uma execução controlada e verifique o efeito real e os logs.
Se uma execução puder durar mais que seu intervalo, projete-a para concorrência ou use um mecanismo de bloqueio, como flock, quando disponível:
*/5 * * * * /usr/bin/flock -n /run/user/1000/report.lock /home/pete/bin/report
Escolha um caminho de bloqueio que o usuário da tarefa possa criar com segurança e decida se execuções ignoradas são aceitáveis. O cron não garante automaticamente que apenas uma instância seja executada.
Qual risco existe quando uma tarefa demora mais que o intervalo de sua agenda?
Escolha do Agendador Adequado
O cron é apropriado para comandos recorrentes simples. Os timers do systemd podem oferecer integração de dependências, execução posterior persistente, atraso aleatório e registro no journal em hosts com systemd. Agendadores de aplicações ou clusters podem ser mais seguros quando uma tarefa precisa ser executada exatamente uma vez em várias máquinas.
Por que o cron comum por host pode ser inadequado para uma tarefa de cluster executada exatamente uma vez?
Lição concluída
Você concluiu Tarefas Cron
Agora você sabe operar uma tarefa cron recorrente com suposições explícitas de agenda e execução.
Leia os cinco campos de tempo em sua ordem definida.
Inspecione e edite crontabs de usuários sem excluir tarefas não relacionadas.
Defina caminhos, ambiente, registro e tratamento de credenciais.
Teste como o usuário da tarefa e proteja contra sobreposições indesejadas.
Escolha um agendador adequado aos requisitos do host e de coordenação.
Salve seu progresso
Crie uma conta gratuita para salvar esta lição e continuar em qualquer dispositivo.
Criar uma conta gratuita