Como Criar e Adicionar Cron Jobs no Linux

Agendamento de tarefas periódicas usando Cron no Linux

cron é um programa Linux usado para agendar um comando ou script a ser executado em um momento posterior. Ele também pode ser usado para programar comandos e scripts de execução periódica. Programas agendados usando cron são comumente chamados de Cron Jobs. Seu principal uso é para tarefas de administração do sistema, como backups regulares, atualizações regulares de software e outras tarefas de manutenção semelhantes.

Introdução

cron é executado como um daemon no Linux, ou seja, como um processo em segundo plano. Ele permite aos usuários agendar tarefas diretamente com o comando crontab, que abre um arquivo de configuração chamado Cron File em um editor. Arquivos Cron separados são criados para cada usuário.

Criando um arquivo cron e sintaxe básica

O crontab comando pode ser executado com -e sinalize para editar um arquivo Cron existente. Se o arquivo ainda não existir, ele será criado. Se o usuário estiver chamando o comando pela primeira vez e se houver vários editores de arquivos instalados no sistema Linux, o comando solicitará que o usuário escolha um editor padrão em uma lista de editores.

Após escolher o editor, um arquivo cron para o usuário será criado e aberto. Agora você pode especificar trabalhos no arquivo.

A sintaxe geral para especificar um Cron Job é:

Basicamente, o será executado no 'minuto' especificado (0-59), 'hora' (0-23), 'dia do mês' (1-31), mês (1-12), dia da semana, (0-7, Para o domingo, pode ser usado 0 ou 7) no Cron Job. Para simplificar, vamos dar um exemplo:

1 2 3 4 5 echo "Olá"

Isso significa o comando echo "Olá" será executado a cada quinto dia da semana (sexta-feira) e a cada 3 dias do mês, a cada 4º mês do ano (abril), no horário 02:01 (2ª hora primeiro minuto).

Se o mesmo comando for executado todos os dias às 02:01, a sintaxe será semelhante a:

1 2 * * * echo "Olá"

O * significa 'sempre' ou 'para todos', por exemplo para todos os meses, para todos os dias da semana, etc.

O operador de comando (,) pode ser usado para inserir uma lista de valores quando a tarefa deve ser repetida. Por exemplo:

0 2,3,4 * * * echo "Olá"

Isso executará o programa às 2h, 3h e 4h, todos os dias.

Similarmente, um hífen (-) operador pode ser usado para especificar um intervalo para o qual a tarefa deve ser repetida. Por exemplo:

0-20 2 * * * echo "Hello"

Isso executará o programa às 02:00, 02:01, 02:02 e assim por diante até 02:20.

Finalmente, temos a barra ( / ) operador. Este operador é usado para especificar um valor de intervalo de acordo com o qual a tarefa será repetida. Por exemplo. */15 no campo de minutos significa que a tarefa deve ser repetida a cada 15 minutos. 2-10/2 no campo de horas especifica que a tarefa deve ser repetida entre 2h e 10h após cada intervalo de 2 horas (2h, 4h, 6h, 8h, 10h).

* / 15 2-10 / 2 * * * echo "Olá"

Depois de fazer a entrada no Arquivo Cron, salve o arquivo e saia do editor.

Você deveria ver um ‘Instalando um novo crontab’ mensagem no terminal após salvar e sair do arquivo crontab.

Macros

Certas macros são predefinidas no Cron, que especifica alguns intervalos de tempo comumente exigidos, como a cada hora, todos os dias, todos os meses, etc.

Para executar uma tarefa uma vez todos os dias no início do dia, ou seja, às 00:00, use a macro @Diário. Isso é equivalente a 0 0 * * *.

Você pode colocá-lo no arquivo Cron da mesma forma descrita anteriormente.

De forma semelhante, as outras macros podem ser usadas, viz. @hourly (Minuto 0 de cada hora), @por mês (00:00 do primeiro dia do mês), @semanalmente (00:00 do primeiro dia da semana, @anual(00:00 de primeiro de janeiro de cada ano), @reinício (em cada inicialização do computador).

Conclusão

Neste artigo, aprendemos como adicionar Cron Jobs para execução regular no Linux. O uso adequado de Cron Jobs é útil até mesmo para as tarefas manuais mais enfadonhas enfrentadas pelo usuário, por exemplo. exclusão regular de registros antigos, arquivamento de todos os tipos de dados frios (dados raramente acessados), etc.