Este artigo explicará tarefas de agendamento e scripts em execução em intervalos regulares usando trabalhos Cron.
O que é Cron?
Cron é um programa de agendamento de tarefas que é executado em segundo plano como um processo. Ele pode ser usado para executar periodicamente certos trabalhos que são agendados usando seu conjunto predefinido de regras. Cron vem pré -instalado na maioria das distribuições Linux ou disponível nos repositórios a serem instalados manualmente.
Predefinições de Cron
Cron no Ubuntu vem com um conjunto de agendadores predefinidos. Você pode verificá -los executando o comando abaixo:
$ ls /etc /cron.*
Geralmente essas pastas são “/etc/cron.horário ”,“/etc/cron.diariamente ","/etc/cron.mensalmente ”e“/etc/cron.semanalmente".
Basta colocar os scripts desejados em uma dessas pastas para executar tarefas automatizadas de hora em hora, diariamente, mensalmente ou semanalmente.
Observe que Cron usa shell "/bin/sh" por padrão. Se você quiser usar "/bin/bash" como shell em scripts cron, você deve usar "!#/bin/bash ”Hashbang na parte superior do arquivo de script ou defina shell como“ shell =/bin/bash ”na primeira linha em um script de bash programado. A variável de ambiente “shell” substituta também funciona para o editor de Crontab explicado abaixo.
Nem todas as variáveis do ambiente do sistema podem ser expostas aos trabalhos de Cron. Portanto, geralmente é uma boa ideia definir manualmente variáveis de ambiente importantes em um script agendado por Cron.
Crontab
Crontab permite que você defina suas próprias tarefas agendadas. Você pode usá -lo para configurar os cronogramas CRON DIFERENTES DOS QUATRO.
Para definir uma tarefa programada em Crontab, inicie primeiro o editor Crontab usando o comando abaixo:
$ CRONTAB -E
Agora, no final do arquivo, você pode adicionar uma entrada no seguinte formato:
Minuto de hora do dia da semana durante a semana/Full/Path/to/script.shOnde:
A entrada de Crontab abaixo terá uma captura de tela da sua área de trabalho e a armazenará em seu diretório doméstico uma vez às 15:13 horas em 2 de março, mais todas as terças -feiras em março às 15:13 horas.
13 15 2 3 2 ScrotPara listar todas as entradas de Crontab, use o comando abaixo:
$ CRONTAB -L
Mais exemplos
As tarefas de Cron podem ser melhor explicadas por meio de exemplos, portanto, abaixo estão alguns exemplos que tiram capturas de tela periodicamente da sua área de trabalho e os armazenam na pasta doméstica.
Além das cinco variáveis de agendamento, Cron também usa alguma string especial para agendar trabalhos. Essas cordas são:
A entrada de Crontab abaixo terá a captura de tela uma vez em cada reinicialização:
@Reboot ScrotVocê pode substituir "@reboot" por qualquer outra seqüência especial mencionada acima.
O uso de um asterisco ou curinga no lugar de qualquer uma das cinco variáveis repetirá o trabalho em todas as novas instâncias dessa variável. A entrada abaixo terá uma captura de tela a cada minuto:
* * * * * ScrotToda hora:
0 * * * * escrotoTodos os dias às 18:00 horas:
0 18 * * * escrotoTodo mês no dia 6 às 18:00 horas:
0 18 6 * * escrotoUse "/" para executar um script em um intervalo periódico fixo de 30 minutos (executa a cada 30 minutos):
*/30 * * * * escrotoVocê pode usar variáveis separadas por vírgula para definir a execução repetida do script em intervalos regulares. O exemplo abaixo terá uma captura de tela da sua área de trabalho a cada 1º, 4º e 5º minuto de uma nova hora.
1,4,5 * * * * escrotoVerificando as entradas de Crontab
Definir entradas de Crontab pode ser complicado, mas depurar ou verificar se eles funcionam no Timestamps corretos é ainda mais complicado. Uma opção é usar uma máquina virtual e registrar registros de data e hora de um script executando periodicamente em um trabalho de cron, incluindo algo como "data" e redirecionando a saída para um arquivo de texto. No entanto, uma solução melhor é usar um dos inúmeros serviços de teste de empregos cron online disponíveis na web. Eu recomendo dar um site do Cron Tester disponível aqui uma tentativa.
Conclusão
Executar o Cron Jobs é uma excelente maneira de automatizar tarefas repetidas, especialmente em servidores. A ferramenta é extremamente poderosa e personalizável. No entanto, é importante verificar que sua definição de agendador funciona corretamente, especialmente se houver tarefas de missão crítica.