Você pode criar um script que chame outros scripts de maneira organizada, como seguir
Este é o seu arquivo cron
,
30 6,14 * * 1-5 / home / usuário / scripts / A-B-C.sh
Em seguida, o script A-B-C.sh
é definido como
#!/bin/bash
# Run script A,B,C
# execute script A
./home/user/scripts/A.sh
#execute script B
./home/user/scripts/B.sh
enter code here
#execute script C
./home/user/scripts/C.sh
Se você quiser \ não deseja executar o script B.sh
e C.sh
nos casos em que o script A.sh
tiver algum erro, você poderá incluir o rastreamento de erros usando variáveis cujo valor você pode manter como 0
ou 1
. Então, caso o script anterior não termine como esperado, você pode tomar a decisão necessária sobre o que fazer com o próximo script.
Um exemplo é o seguinte,
#!/bin/bash
# Run script A,B,C
# Exit code and default run code initialization
exit_A=0
exit_B=0
def_B=1
def_C=1
#----------------------------------------------
# execute script A
. ./home/user/scripts/A.sh $exit_A #make sure to change the value of exit_A to 1 if A finishes as expected.
if [$exit_A==1] && [def_B==1] #only if A finishes without error and B is ok
then
#execute script B
. ./home/user/scripts/B.sh $exit_B
else
<do something like log>
fi
if [$exit_B==1] && [def_C==1] #only if B finishes without error and C is ok
then
#execute script C
. ./home/user/scripts/C.sh $exit_C
else
<do something like log>
fi
now="$(date +'%d/%m/%Y-%T')"
#make a log in a file (print can be used for better formatting)
echo -e $now,$exit_A,$exit_B,$exit_C >> /home/user/log/script_log.txt
No script acima, as variáveis estão sendo passadas pelos scripts. Use com cautela e teste antes de usar o código.