
Eu tenho um requisito para fazer um script para coletar alguns dados de um banco de dados e formatar de acordo com um requisito, isso deve ser executado por um cron job agendado. mas não deve haver execuções paralelas. (Se um processo estiver em execução, outro não deverá ser iniciado).
Ajude-me a fazer isso em scripts bash.
Responder1
Você pode usar o arquivo de bloqueio. No início do script, verifique se o arquivo de bloqueio já existe, em caso afirmativo, saia, se não, continue. Ao criar o arquivo de bloqueio. execute seu script. E antes de sair, remova o arquivo de bloqueio. algo assim:
if [ - f lock ] ; then
exit 1
fi
touch lock
your code
rm lock