Crontab em Linux

Crontab em Linux
Com o advento das novas tecnologias, queremos que tudo seja automatizado, incluindo nossos sistemas de computador. Por exemplo, como administrador do sistema, podemos querer que nosso backup seja executado todas as 2:00 da manhã. Então, qual é o objetivo dos computadores se tivermos que acordar diariamente às 2:00 da manhã e executar os comandos manualmente para iniciar o backup. Deve haver uma maneira de dizer ao sistema para executar automaticamente um backup em um horário específico. Felizmente, o Linux OS oferece um utilitário Cron que permite automatizar tarefas em um período específico.

Cron é um utilitário de linha de comando eficaz e popular usado para agendar uma ampla gama de tarefas em um horário especificado sem interação do usuário. As tarefas programadas são conhecidas como trabalhos de Cron, enquanto o Crontab é a lista do arquivo que contém os trabalhos Cron.

Neste artigo, explicaremos com vários exemplos de programas que você pode editar e usar o Arquivo Crontab para agendar tarefas no Sistema Debian 10.

Cron pode ser usado para automatizar tarefas nos seguintes cenários:

  • Backups de programação de execução,
  • Verificação do espaço em disco em um intervalo específico,
  • Executando manutenção automática,
  • Removendo periodicamente arquivos indesejados,
  • Executando diagnóstico de rede

Sintaxe

É mais fácil trabalhar com Cron, uma vez que você entende sua sintaxe. A sintaxe geral para usar Cron é:

* * * */caminho/para/script.sh

Cada um dos campos corresponde ao seguinte:

Minuto (0-59) hora (0-24) DIA_OF_THE_MONTH (1-7) MONDS_OF_THE_YEAR (1-12)
Day_of_the_week (0-6) comando

Instalando Cron

Cron vem pré -instalado no Debian 10. No entanto, se estiver faltando no seu sistema, execute o seguinte comando para instalá -lo:

$ sudo apt install cron

Veja Crontab

Para visualizar o arquivo Crontab, use o seguinte comando:

$ CRONTAB -L

Para visualizar o arquivo crontab de um usuário em particular, use o seguinte comando:

$ sudo crontab -u usuário -l

Edite Crontab

Para editar o arquivo crontab do usuário atual:

$ CRONTAB -E

Para editar o arquivo crontab de um usuário específico:

$ sudo crontab -u user

Se você estiver editando o Arquivo Crontab pela primeira vez, você será solicitado a 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 2:00. Para fazer isso, você precisará adicionar a seguinte linha no seu arquivo Crontab:

0 2 * * * /documentos /backup.sh

Na janela acima, você pode adicionar seus trabalhos cron um por um. Uma vez feito, salve e saia do arquivo depois que todos os trabalhos do Cron serão executados automaticamente em seu intervalo especificado.

Remova Crontab

Para remover o arquivo Crontab, insira o seguinte comando no terminal:

$ CRONTAB -R

Agora vamos passar por uma série de exemplos de trabalhos Cron em uma máquina Linux.

Execute um trabalho de Cron a cada minuto

Para executar um trabalho de cron a cada minuto, adicione a seguinte linha no seu arquivo Crontab:

* * * * */caminho/para/script.sh

Execute um trabalho de Cron após a cada 10 minutos

Para agendar um trabalho de cron para executar a cada 10 minutos, adicione a seguinte linha no seu arquivo Crontab.

*/10 * * * */caminho/para/script.sh

Faça um trabalho de Cron em meses específicos

Para agendar um trabalho de cron para executar em meses específicos e.g. Março, agosto, dezembro, adicione o trabalho Cron em seu arquivo Crontab da seguinte maneira:

* * * Jan, maio, agosto */path/to/script.sh

Execute um trabalho de Cron em dias selecionados

Se você deseja que seu trabalho de Cron seja executado em dias selecionados, suponhamos domingo e sexta às 17h, deve parecer o seguinte.

0 17 * * sol, sex/caminho/para/script.sh

Faça um trabalho de Cron diariamente em um horário específico

Para agendar um trabalho de cron para executar diariamente em um horário específico, digamos às 3 da manhã, adicione esta linha no seu arquivo crontab.

0 3 * * */caminho/para/script.sh

Faça um trabalho de Cron em um dia específico

Para agendar um trabalho de cron para executar em um dia específico, digamos todos os domingos, adicione esta linha no seu arquivo Crontab.

0 0 * * sol/caminho/para/script.sh

O trabalho será executado às 00:00 todos os domingos.

Execute várias tarefas em um único trabalho de cron

Para agendar várias tarefas em um único trabalho de cron, adicione todos os scripts no seu arquivo crontab, separando -os com um semicolon.

* * * * */caminho/para/script1.sh; /caminho/para/script2.sh

Executar um trabalho de Cron em todo Dia da semana

Para agendar um trabalho de cron para executar todos os dias da semana, de segunda a sexta.

0 0 * * 1-5/caminho/para/script.sh

O trabalho será executado às 00:00 em todos os dias da semana.

Execute um trabalho de Cron duas vezes por dia

Para agendar um trabalho para executar duas vezes ao dia e.g. Às 6h e 15h, você precisará adicionar esta linha ao seu arquivo Crontab:

0 6,15 * * */caminho/para/script.sh

Execute um trabalho de Cron a cada hora

Para agendar um trabalho de cron para executar a cada hora no minuto 0, você precisará adicionar esta linha ao seu arquivo crontab:

0 * * * */caminho/para/script.sh

Por exemplo, se o horário atual for 14h, o trabalho será executado às 15:00, 16:00 e assim por diante.

Execute um trabalho de Cron após cada 3 horas

Para agendar um trabalho de cron para executar após cada 3 horas no minuto 0, você precisará adicionar esta linha ao seu arquivo Crontab:

0 */3 * * */caminho/para/script.sh

Por exemplo, se o horário atual for 14h, o trabalho será executado às 17:00, 20:00 e assim por diante.

Execute o trabalho de Cron às 16:00 no primeiro de cada mês

Para agendar um trabalho para executar o dia primeiro de cada mês às 16:00, você precisará adicionar esta linha ao seu arquivo Crontab:

0 16 1 * */caminho/para/script.sh

Strings em Crontab

Você também pode usar as seguintes strings, em vez dos comandos repetitivos longos.

@hourly- executar um trabalho de cron a cada hora eu.e. “0 * * * *“
@Midnight- Run Cron Job todos os dias eu.e. “0 0 * * *“
@Daily- Igual ao meia-noite
@Weekly- Run Cron Job toda semana, eu.e. “0 0 * * 0“
@Monthly- Run Cron Job todo mês eu.e. “0 0 1 * *“
@anualmente- execute o trabalho de cron todos os anos eu.e. “0 0 1 1 *“
@anualmente- o mesmo que @analmente
@reiniciar o trabalho Cron em cada inicialização

Por exemplo, para executar o trabalho de Cron todos os dias no primeiro minuto e a primeira hora, adicione a seguinte linha:

@Daily/Path/to/script.sh

Por exemplo, para executar o trabalho Cron sempre que o servidor é reiniciado:

@reboot/path/to/script.sh

Isso é tudo o que há para isso! Neste artigo, aprendemos a automatizar várias tarefas usando Crontab no sistema Debian. Ao usar os exemplos acima, você pode agendar qualquer tipo de trabalho para iniciar sem qualquer interação do usuário.