Crontab em Linux com 20 exemplos úteis para agendar empregos

Crontab em Linux com 20 exemplos úteis para agendar empregos

Você administra um trabalho cron em seu servidor a cada tantos minutos? Você é um administrador ou engenheiro de sistema que tem que gerenciar os trabalhos de Cron diariamente? Você continua esquecendo a sintaxe para configurar um novo trabalho de Cron? Se sim, continue lendo sobre.

Cron é uma parte essencial de qualquer sistema, pois automatiza várias tarefas programadas. O comando Crontab é usado para editar e gerenciar trabalhos de cron. Criar um trabalho de Cron não é difícil, mas pode se tornar complicado ao lidar com vários usuários e ambientes. A sintaxe de Crontab é a mesma em todas as distribuições e servidores Linux; portanto, depois de pegar o jeito, você estará agendando tarefas em nenhum momento!

Neste tutorial, você aprenderá a usar Crontab com 20 exemplos úteis para agendar trabalhos. Você também pode usar o Crontab para que as tarefas sejam executadas apenas uma vez no futuro, mas para que qualquer tarefa seja executada quando recomendamos o uso do Linux at comando.

Se você não tiver Crontab instalado em seu sistema, consulte o artigo Instale Crontab em CentOS/RHEL.

Linux Crontab Sintaxe

O formato de um arquivo crontab é muito simples: cada linha contém seis campos, separados por espaços. O primeiro campo especifica o minuto (0-59) Quando o trabalho será executado, o segundo campo especifica a hora (0-23), o terceiro campo especifica o dia do mês (1-31) e assim por diante. Os curingas também podem ser usados ​​em arquivos Crontab. Por exemplo, um asterisco no quarto campo indica que o trabalho deve ser executado a cada semana.

       

  • Minuto - Um valor minuto pode estar entre 0-59
  • Hora - Um valor de hora pode estar entre 0-23
  • Dia do mês - Este valor pode entre 1-31. Pelos meses que tendo menos dias ignorarão a parte restante
  • Mês do ano - Isso pode ser entre 1-12. Você também pode definir esse valor com os três primeiros alfabetos do mês como Jan, fevereiro, março, abril etc.
  • Dia da semana - Este pode ser o valor entre 0-7. Onde 0 e 7 para domingo, 1 para segunda, 2 para terça -feira, e assim por diante. Você também pode usar os três primeiros alfabetos de dias como Sun, Mon, Ter, Wed, etc.

Agora, as declarações abaixo descreverão como definir vários valores ou faixas. Leia abaixo e entenda.

  • ASTRICS (*) - Combina qualquer coisa
  • Valores múltiplos - Use o comando (,) para definir vários valores como 2,4,8 ou sol, sex ou janeiro, outubro, dez.
  • Defina o alcance - Você pode definir o alcance usando o hífen como: 1-10 ou 20-30 ou sun-sex ou feb-abr
  • Defina vários intervalos - Você pode definir vários intervalos com comandos separados como: Jan-Mar, Jul-Sep

Como adicionar/editar Crontab

Os arquivos crontab são normalmente armazenados no /etc /cron.D/ Diretório em sistemas Linux. O comando Crontab pode ser usado para editar o arquivo Crontab.

Crontab -e 

Por padrão, ele editará as entradas de Crontab do usuário atualmente conectado. Para editar outro usuário Crontab, use o comando abaixo:

Crontab -u Nome de usuário -e 

Mudar o EDITOR Variável de ambiente para alterar seu editor padrão.

Como listar Crontab

Para visualizar as entradas de Crontab dos usuários atuais, use o seguinte comando.

Crontab -l 

Use -u seguido pelo nome de usuário para ver as entradas de Crontab do usuário especificado.

Crontab -u Nome de usuário -l 

20 exemplos úteis para agendar Crontab

Aqui está a lista de exemplos para agendar trabalhos de cron em um sistema Linux usando Crontab.

  1. Agende um cron para executar às 2 da manhã diariamente.
  2. Isso será útil para agendar backups de banco de dados diariamente.

    0 2 * * * /BIND /SH Backup.sh 
    • Asterisk (*) é usado para corresponder a todos os registros.
  3. Agende um cron para executar duas vezes por dia.
  4. O comando de exemplo abaixo será executado às 5h e 17h diariamente. Você pode especificar vários carimbos de hora por se separar de vírgula.

    0 5,17 * * * /scripts /script.sh 
  5. Agende um cron para executar cada minuto.
  6. Geralmente, não precisamos de nenhum script para executar cada minuto, mas em alguns casos, pode ser necessário configurá -lo.

    * * * * * /scripts /script.sh 
  7. Programe um cron para executar todos os domingos às 17h.
  8. Esse tipo de cron é útil para realizar tarefas semanais, como rotação de log, etc.

    0 17 * * Sun /Scripts /Script.sh 
  9. Agende um cron para executar a cada 10 minutos.
  10. Se você quiser executar seu script em intervalos de 10 minutos, pode configurá -lo como o abaixo. Esses tipos de Crons são úteis para monitorar.

    */10 * * * */scripts/monitor.sh 

    */10: significa correr a cada 10 minutos. O mesmo que se você quiser executar a cada 5 minutos, use */5.

  11. Agende um cron para executar em meses selecionados.
  12. Às vezes, somos obrigados a agendar uma tarefa a ser executada apenas para meses selecionados. O script de exemplo abaixo será executado em janeiro, maio e agosto meses.

    * * * Jan, maio, agosto * /script /script.sh 
  13. Agende um cron para executar em dias selecionados.
  14. Se você precisou de agendar uma tarefa a ser executada apenas para dias selecionados. O exemplo abaixo será executado a cada domingo e sexta às 17h.

    0 17 * * sol, sex /script /script.sh 
  15. Programe um cron para executar no primeiro domingo de cada mês.
  16. Para agendar um script para executar um script no primeiro domingo não é possível pelo parâmetro de tempo, mas podemos usar a condição nos campos de comando para fazê -lo.

    0 2 * * sol [$ (data +%d) -le 07] && /script /script.sh 
  17. Agende um cron para executar a cada quatro horas.
  18. Se você quiser executar um script em intervalos de 4 horas. Pode ser configurado como abaixo.

    0 */4 * * */scripts/script.sh 
  19. Programe um cron para executar duas vezes todos os domingos e segunda -feira.
  20. Para agendar uma tarefa para executar duas vezes no domingo e segunda -feira. Use as seguintes configurações para fazer isso.

    0 4,17 * * sol, seg /scripts /script.sh 
  21. Agende um cron para executar a cada 30 segundos.
  22. Para agendar uma tarefa para executar a cada 30 segundos, não é possível com os parâmetros de tempo, mas pode ser feito agendar o mesmo Cron duas vezes que abaixo.

    * * * * * /scripts /script.Sh * * * * * Sono 30; /scripts/script.sh 
  23. Agendar várias tarefas em um único cron.
  24. Para configurar várias tarefas com um único cron, pode ser feito separando as tarefas pelo semicolon (;).

    * * * * * /scripts /script.sh; /scripts/scrit2.sh 
  25. Agende tarefas para executar anualmente ( @ano).
  26. @anual Timestamp é semelhante a “0 0 1 1 *““. Ele executará uma tarefa no primeiro minuto de cada ano, pode ser útil enviar saudações de ano novo 🙂

    @Yearly /scripts /script.sh 
  27. Agende tarefas para executar mensalmente (@mmonthly).
  28. @por mês Timestamp é semelhante a “0 0 1 * *““. Ele executará uma tarefa no primeiro minuto do mês. Pode ser útil realizar tarefas mensais, como pagar as contas e faturar aos clientes.

    @montly /scripts /script.sh 
  29. Agende tarefas para executar semanalmente (@Weekly).
  30. A @semanalmente Timestamp é semelhante a “0 0 * * sol““. Ele executará uma tarefa no primeiro minuto da semana. Pode ser útil realizar tarefas semanais como a limpeza do sistema etc.

    @Weekly /bin /script.sh 
  31. Agende tarefas para executar diariamente (@Daily).
  32. @diário Timestamp é semelhante a “0 0 * * *““. Ele executará uma tarefa no primeiro minuto de cada dia, pode ser útil fazer tarefas diárias.

    @Daily /Scripts /Script.sh 
  33. Agende tarefas para executar a cada hora (@hourly).
  34. @Hourly Timestamp é semelhante a “0 * * * *““. Ele executará uma tarefa no primeiro minuto de cada hora, pode ser útil fazer tarefas horárias.

    @hourly /scripts /script.sh 
  35. Agende tarefas para executar o reinicialização do sistema (@Reboot).
  36. @reinício é útil para as tarefas que você deseja executar na inicialização do seu sistema. Será o mesmo que scripts de inicialização do sistema. É útil para iniciar tarefas em segundo plano automaticamente.

    @reboot /scripts /script.sh 
  37. Redirecionar os resultados do CRON para uma conta de email especificada.
  38. Por padrão, Cron envia detalhes para o usuário atual onde o Cron está agendado. Se você deseja redirecioná -lo para sua outra conta, pode ser feito configurando a variável de email como abaixo

    Crontab -l  Mail = bob 0 2 * * * /script /backup.sh 
  39. Retire um backup de todo Cron para um arquivo de texto simples.
  40. Eu recomendo manter um backup de todos os empregos entrando em um arquivo. Isso o ajudará a recuperar Cron em caso de exclusão acidental.

    Verifique o atual cron agendado:

    Crontab -l  Correio = rahul 0 2 * * * /script /backup.sh 

    Backup Cron ao arquivo de texto:

    # crontab -l> cron -backup.txt # gato cron-backup.TXT Mail = Rahul 0 2 * * * /script /backup.sh 

    Removendo o Cron programado atual:

    # Crontab -R # Crontab -L No Crontab for Root 

    Restaure os Crons do arquivo de texto:

    # Crontab cron-backup.txt # crontab -l Mail = Rahul 0 2 * * * /script /backup.sh 

Conclusão

Obrigado por ler este artigo, espero que o ajude a entender Crontab no Linux. Para agendar tarefas únicas, você também pode usar o Linux at comando.