Como executar vários comandos em um trabalho Cron

Como executar vários comandos em um trabalho Cron

Crontab é um utilitário para executar tarefas programadas em intervalos regulares em sistemas Unix-Linux. Ele nos permite agendar vários trabalhos de cron para executar de uma só vez. Podemos agendar qualquer comando shell ou script pode ser executado no terminal. Todo trabalho programado em Crontab é separado por uma nova linha. Também podemos definir vários comandos ou scripts em um único trabalho de cron para executar um por um.

Como preencher dois comandos no Linux

Você pode separar dois ou mais comandos usando o semicolons (;), lógico e (&&) ou lógico ou (||) operadores. Qual desses operadores que usamos depende totalmente dos requisitos. Aqui está o entendimento básico de usar esses operadores.

  1. Semicolon (;): é usado para separar vários comandos. Isso executa todos os comandos sem verificar o status de saída dos comandos anteriores.
    comando_1; comando_2; Command_n 
  2. Lógico e (&&): é usado para separar comandos quando queremos executar o próximo comando apenas se o comando anterior foi executado com sucesso com o status de saída 0.
    command_1 && command_2 && command_n 
  3. Lógico ou (||): é usado para separar os comandos quando queremos executar o próximo comando apenas se o comando anterior falhar com um status de saída não 0.
    Command_1 || Command_2 || Command_n 

Como agendar um trabalho de Cron

Primeiro, mude para o usuário do qual você deseja executar um trabalho de Cron. Em seguida, abra o editor Crontab executando o seguinte comando.

Crontab -e  

Em seguida, você adiciona uma entrada de trabalho Cron ao arquivo como abaixo:

Comandos de Crontab separados com lógico e

Executando vários comandos em um único trabalho de cron

Vamos discutir os exemplos da vida real da execução de vários comandos com Crontab com o Difference-2 separados.

  1. Usando o semicolon (;)
  2. Podemos separar dois ou mais comandos com semicolons, que não exigem verificar o status de saída do comando anterior. Por exemplo, você precisa alterar a permissão de todos os arquivos para 777, mas precisa definir 777 para o diretório de logs.

    0 2 * * chmod -r 755/var/www/myApp; chmod -r 777/var/www/myApp/logs
    10 2 * * chmod -r 755/var/www/myApp; chmod -r 777/var/www/myApp/logs

    Comandos de Crontab separados com semicolon (;)

  3. Usando lógico e (&&)
  4. Use este operador, onde deseja executar o próximo comando apenas se o anterior for executado com sucesso (status de saída 0). Por exemplo, você deseja executar o backup.SH Depois de mudar com sucesso para /diretório de backup.

    0 2 * * * CD /Backup && Bashup.sh
    10 2 * * * CD /Backup && Bashup.sh

    Comandos de Crontab separados com lógico e

  5. Usando lógico ou (||)
  6. Use o operador lógico ou (||), quando quiser executar o próximo comando apenas se o anterior for falhado (status de saída não 0). Por exemplo, você deseja mostrar uma mensagem ou enviar um email se o arquivo de backup não encontrado.

    0 2 * * * [-f /backup /mydb -'date +%f '.SQL] || eco "o arquivo de backup de hoje não encontrado"
    10 2 * * * [-f /backup /mydb -'date +%f '.SQL] || eco "o arquivo de backup de hoje não encontrado"
    Crontab comandos separados com lógico e

Conclusão

Nesta postagem do blog, você aprendeu sobre a execução de vários comandos em uma única entrada de trabalho Cron. Também discutiu várias opções para separar comandos. O artigo fornece os detalhes básicos sobre cada separador usado para separar comandos.