Cron é um utilitário de linha de comando popular e eficaz, usado para agendar uma ampla gama de tarefas em um horário especificado sem interação do usuário. As tarefas agendadas são conhecidas como tarefas cron enquanto o crontab é a lista do arquivo que contém as tarefas cron.
Neste artigo, iremos explicar com vários exemplos de shows que você pode editar e usar o arquivo crontab para agendar tarefas no sistema Debian 10.
O Cron pode ser usado para automatizar tarefas nos seguintes cenários:
- Execução de backups agendados,
- Verificando o espaço em disco em um intervalo específico,
- Execução de manutenção automática,
- Remoção periódica de arquivos indesejados,
- Executando diagnóstico de rede
Sintaxe
É mais fácil trabalhar com o cron, uma vez que você entenda sua sintaxe. A sintaxe geral para usar o cron é:
* * * * / caminho / para / script.shCada um dos campos corresponde ao seguinte:
Minuto (0-59) Hora (0-24) Dia_do_Mês (1-7) Mês_do_ano (1-12)Comando Day_of_the_Week (0-6)
Instalando o Cron
Cron vem pré-instalado no Debian 10. No entanto, se ele estiver faltando em seu sistema, execute o seguinte comando para instalá-lo:
$ sudo apt install cronVer crontab
Para visualizar o arquivo crontab, use o seguinte comando:
$ crontab -lPara visualizar o arquivo crontab de um determinado usuário, use o seguinte comando:
$ sudo crontab -u user -lEditar crontab
Para editar o arquivo crontab do usuário atual:
$ crontab -ePara editar o arquivo crontab de um usuário específico:
$ sudo crontab -u userSe você estiver editando o arquivo crontab pela primeira vez, deverá escolher um editor:
Depois de selecionar o editor, a seguinte janela aparecerá.
Por exemplo, você deseja executar um script de backup chamado “backup.sh ”localizado no diretório de documentos diariamente às 2h. Para fazer isso, você precisará adicionar a seguinte linha em seu arquivo crontab:
0 2 * * * / Documentos / backup.sh
Na janela acima, você pode adicionar seus cron jobs um por um. Uma vez feito isso, salve e saia do arquivo depois que todos os trabalhos do cron serão executados automaticamente em seu intervalo especificado.
Remover crontab
Para remover o arquivo crontab, digite o seguinte comando no Terminal:
$ crontab -rAgora vamos ver uma série de exemplos de tarefas cron em uma máquina Linux.
1. Execute um cron job a cada minuto
Para executar um cron job a cada minuto, adicione a seguinte linha em seu arquivo crontab:
* * * * * / caminho / para / script.sh2. Execute um cron job a cada 10 minutos
Para agendar um cron job para ser executado a cada 10 minutos, adicione a seguinte linha em seu arquivo crontab.
* / 10 * * * * / caminho / para / script.sh3. Executar um cron job em meses específicos
Para agendar um cron job para ser executado em meses específicos e.g. Março, agosto, dezembro, adicione o cron job em seu arquivo crontab da seguinte maneira:
* * * janeiro, maio, agosto * / caminho / para / script.sh4. Executar um cron job em dias selecionados
Se você deseja que seu cron job seja executado em dias selecionados, vamos supor que seja domingo e sexta-feira às 17h, ele deve ser parecido com o seguinte.
0 17 * * sol, sex / caminho / para / script.sh5. Execute um cron job diariamente em um horário específico
Para agendar um cron job para ser executado diariamente em um horário específico, digamos às 3 da manhã, adicione esta linha em seu arquivo crontab.
0 3 * * * / caminho / para / script.sh6. Executar um cron job em um dia específico
Para agendar um cron job para ser executado em um dia específico, digamos todos os domingos, adicione esta linha em seu arquivo crontab.
0 0 * * SUN / caminho / para / script.shO trabalho será executado às 00:00 todos os domingos.
7. Execute várias tarefas em um único cron job
Para agendar várias tarefas em um único cron job, adicione todos os scripts em seu arquivo crontab, separando-os com um ponto e vírgula.
* * * * * / caminho / para / script1.sh; / caminho / para / script2.sh8. Execute um cron job em cada dia da semana
Para agendar um cron job para executar todos os dias da semana, de segunda a sexta-feira, você precisará adicionar esta linha em seu arquivo crontab.
0 0 * * 1-5 / caminho / para / script.shO trabalho será executado às 00:00 em todos os dias da semana.
9. Execute um cron job duas vezes por dia
Para agendar um trabalho para ser executado duas vezes por dia e.g. às 6h e 15h, você precisará adicionar esta linha em seu arquivo crontab:
0 6,15 * * * / caminho / para / script.sh10. Execute um cron job a cada hora
Para agendar um cron job para ser executado a cada hora no minuto 0, você precisará adicionar esta linha em seu arquivo crontab:
0 * * * * / caminho / para / script.shPor exemplo, se o horário atual for 14h, o trabalho será executado às 15h, 16h e assim por diante.
11. Execute um cron job a cada 3 horas
Para agendar um cron job para ser executado a cada 3 horas no minuto 0, você precisará adicionar esta linha em seu arquivo crontab:
0 * / 3 * * * / caminho / para / script.shPor exemplo, se o horário atual for 14h, o trabalho será executado às 17h, 20h e assim por diante.
12. Execute o cron job às 16h do primeiro dia de cada mês
Para agendar um trabalho para ser executado no primeiro dia de cada mês às 16h, você precisará adicionar esta linha em seu arquivo crontab:
0 16 1 * * / caminho / para / script.shStrings em Crontab
Você também pode usar as seguintes strings em vez dos longos comandos repetitivos.
@ hourly- Executar cron job a cada hora i.e. “0 * * * *“@ midnight- Executar cron job todos os dias i.e. “0 0 * * *“
@ diário- mesmo que meia-noite
@ semanal- Execute cron job toda semana, i.e. “0 0 * * 0“
@ mensal- Executar cron job todo mês i.e. “0 0 1 * *“
@ year- Executar cron job todos os anos i.e. “0 0 1 1 *“
@anual- mesmo que @anualmente
@ reboot- Executar cron job a cada inicialização
Por exemplo, para executar o cron job todos os dias no primeiro minuto e na primeira hora, adicione a seguinte linha:
@daily / path / to / script.shPor exemplo, para executar o cron job sempre que o servidor for reinicializado:
@reboot / path / to / script.shIsso é tudo que há para fazer! Neste artigo, aprendemos como automatizar várias tarefas usando crontab no sistema Debian. Usando os exemplos acima, você pode agendar qualquer tipo de trabalho para iniciar sem qualquer interação do usuário.