Executando verificação de segurança...
11

🇧🇷 O que são cron jobs? Aprenda de forma fácil

Vídeo no youtube: https://youtu.be/g69c8iUHhXk


Olá a todos, hoje trago-vos uma ferramenta muito interessante e útil no mundo do desenvolvimento: os cron jobs. Então, vamos começar!

O que é um cron job?

Primeiro, vamos separar e entender os termos: cron e job. Num contexto de programação, um job pode ser interpretado como uma tarefa simples, um pedaço de trabalho a ser feito. E cron é uma ferramenta de agendamento presente em sistemas Unix. Assim, o cron job pode ser entendido como uma tarefa agendada automaticamente. Você pode usar cron jobs para automatizar tarefas repetitivas, como atualizar software, limpar cache, criar backups, etc.

Criando um cron job usando o terminal

Em sistemas Unix, o cron é um daemon, um programa que roda em segundo plano. Você pode gerenciar seus cron jobs editando o arquivo cron no seu sistema operacional. No meu sistema operacional (Linux Mint), o arquivo está localizado em /var/spool/cron/crontabs/<seu-usuário>. Mas existe um comando para facilitar a edição deste arquivo, que é crontab -e (crontab é uma versão abreviada de cron table). Ao executar este comando, o conteúdo do arquivo será exibido usando o seu editor padrão, no meu caso é o Vim. Agora, você pode adicionar as definições dos seus cron jobs no final do arquivo. O formato da definição se parece com isso:

* * * * * <comando>

O comando especificado será executado no intervalo definido pela sintaxe cron * * * * *, neste caso, será executado a cada minuto. Ok, vamos entender o que significa esta sintaxe.

Cada asterisco representa um valor de tempo, nesta sequência:

(minuto) (hora) (dia do mês) (mês) (dia da semana) <comando>

Abaixo estão alguns exemplos para facilitar a compreensão:

0 0 * * 0 /root/backup.shRealiza um backup todo domingo à meia-noite.
0 * * * 1 /root/clearcache.shLimpa o cache a cada hora às segundas-feiras.
0 6,18 * * * /root/backup.shFaz backup dos dados duas vezes ao dia às 6h e às 18h.
*/10 * * * * /scripts/monitor.shRealiza monitoramento a cada 10 minutos

Estes exemplos foram retirados de: https://www.hostinger.com/tutorials/cron-job.

Você pode brincar com isso usando o site crontab.guru.

Ok, voltando ao nosso terminal. Vamos criar um cron que roda a cada minuto e atualiza um arquivo de log chamado cron.log com um texto simples. Primeiro, precisamos criar o arquivo bash com as instruções para o job. O nome do arquivo será cron.sh e o conteúdo será:

echo "Olá pelo cron - $(date +"%Hh%M")" >> <caminho-para-o-seu-arquivo-cron.log>

Este comando irá adicionar ao final do arquivo cron.log um texto como este: Hello from cron - 14h22.

Agora precisamos configurar o cron job para executar o arquivo cron.sh a cada minuto. Antes de editar o arquivo cron, primeiro, precisamos dar permissão de execução ao arquivo cron.sh usando o comando chmod +x cron.sh. Agora, execute o comando crontab -e novamente, vá até o final do arquivo e escreva isto:

* * * * * <caminho-para-o-seu-arquivo-cron.sh>

Salve as alterações e está feito, o seu cron está configurado. Agora, vamos verificar se está funcionando corretamente monitorando o conteúdo do nosso arquivo cron.log.

tail -f cron.log

Depois de alguns minutos, o conteúdo do nosso arquivo deve parecer com isso:

Hello from cron - 14h:22
Hello from cron - 14h:23
Hello from cron - 14h:24
Hello from cron - 14h:25
Hello from cron - 14h:26

Conclusão

Parabéns, se você leu até aqui, agora você tem outro tópico para discutir no nosso jantar de família. Deixando as brincadeiras de lado, hoje você entendeu um conceito essencial do mundo da computação. Agora, comece a criar nossos jobs, e você não está limitado a escrever em arquivos bash, existem muitos pacotes que permitem que você execute cron jobs na sua linguagem de programação favorita. Espero que este artigo tenha sido útil para você. Deixe-me saber o que você achou nos comentários.

Referências

https://www.hostinger.com/tutorials/cron-job

Carregando publicação patrocinada...
6

Gostaria de adicionar o repo de uma ui desenvolvida pra facilitar a vida de quem precisa trabalhar com o cron (eu trabalho com isso diariamente).
crontab-ui
O acesso pode ser feito via browser de outros computadores mediante uso de usuário/senha.
Espero ter contribuído de alguma forma.

0
2

Você pode executar qualquer script shell. Se seu sgbd permitir que você faça isso via linha de comando, só colocar no script e foi pra conta.