Skip to main content

Como agendar a execução de um script shell no Linux com o cron

O cron é uma ferramenta que permite programar a execução de comandos ou scripts no Linux em horários específicos. O cron é útil para realizar tarefas automáticas e periódicas, como fazer backups, atualizar o sistema, enviar e-mails e muito mais.

O cron funciona com base em um ficheiro chamado crontab, que contém as instruções de quando e como executar os comandos ou scripts. Cada utilizador do Linux pode ter o seu próprio ficheiro crontab, que pode ser editado com o comando crontab -e. O arquivo crontab segue um formato específico, que consiste em seis campos separados por espaços:

minuto hora dia_do_mês mês dia_da_semana comando

Onde:

  • minuto: indica o minuto em que o comando ou script deve ser executado, de 0 a 59.
  • hora: indica a hora em que o comando ou script deve ser executado, de 0 a 23.
  • dia_do_mês: indica o dia do mês em que o comando ou script deve ser executado, de 1 a 31.
  • mês: indica o mês em que o comando ou script deve ser executado, de 1 a 12 ou pelos nomes abreviados em inglês (jan, feb, mar, etc.).
  • dia_da_semana: indica o dia da semana em que o comando ou script deve ser executado, de 0 a 6 ou pelos nomes abreviados em inglês (sun, mon, tue, etc.), sendo 0 ou sun para domingo.
  • comando: indica o comando ou script que deve ser executado, com o caminho absoluto ou relativo.

Pode usar alguns caracteres especiais para especificar intervalos ou listas de valores nos campos do crontab. Por exemplo:

  • *: significa qualquer valor possível para o campo. Por exemplo, se usar * no campo hora, significa que o comando ou script será executado a cada hora.
  • -: significa um intervalo de valores para o campo. Por exemplo, se usar 1-5 no campo dia_da_semana, significa que o comando ou script será executado de segunda a sexta-feira.
  • ,: significa uma lista de valores para o campo. Por exemplo, se usar 1,3,5 no campo mês, significa que o comando ou script será executado em janeiro, março e maio.
  • /: significa um passo de valores para o campo. Por exemplo, se usar */2 no campo hora, significa que o comando ou script será executado a cada duas horas.

Além disso, pode usar algumas abreviações predefinidas para representar combinações comuns de valores nos campos do crontab. Por exemplo:

  • @reboot: significa que o comando ou script será executado uma vez na inicialização do sistema.
  • @yearly: significa que o comando ou script será executado uma vez por ano, no primeiro minuto do primeiro dia do ano (equivalente a 0 0 1 1 *).
  • @monthly: significa que o comando ou script será executado uma vez por mês, no primeiro minuto do primeiro dia do mês (equivalente a 0 0 1 * *).
  • @weekly: significa que o comando ou script será executado uma vez por semana, no primeiro minuto do primeiro dia da semana (equivalente a 0 0 * * 0).
  • @daily: significa que o comando ou script será executado uma vez por dia, no primeiro minuto da meia-noite (equivalente a 0 0 * * *).
  • @hourly: significa que o comando ou script será executado uma vez por hora, no primeiro minuto da hora (equivalente a 0 * * * *).

Para exemplificar como usar o cron para agendar a execução de um script shell no Linux, vamos supor que tem um script chamado backup.sh, que faz um backup dos seus ficheiros importantes, e que queira executá-lo todos os dias às 23:00. Para isso, pode seguir os passos abaixo:

  • Abra o terminal e digite crontab -e para editar o seu arquivo crontab.
  • Insira a seguinte linha no final do arquivo:
    0 23 * * * /path/to/backup.sh
  • Grave e feche o ficheiro. O cron vai ler o seu arquivo crontab e executar o seu script conforme programado.

Pronto! Agora já sabe como usar o cron para agendar a execução de um script shell no Linux.

 

#Linux #Cron #Script #Shell #Agendar #Executar #Comando #Crontab #Hora #Data

Linux, Código Aberto

  • Criado em .

1000 carateres remanescentes