A abordagem mais simples seria dois comandos find
:
find /var/sync/ -name 'sync.php' -execdir php {} \;
find /var/sync/ -name 'Replicator.php' -execdir php {} \;
Isso irá procurar por arquivos chamados sync.php
ou Replicator.php
, depois cd no diretório pai e execute-os com php
. Você pode adicionar os comandos diretamente ao seu crontab:
0 30 * * * find /var/sync/ -name 'sync.php' -execdir php {} \;
0 0 * * * find /var/sync/ -name 'Replicator.php' -execdir php {} \;
Se você precisar que os scripts Replicator
sejam executados com uma pausa de 30 minutos entre eles, faça algo como:
find /var/sync/ -name 'Replicator.php' -execdir php {} \; -exec sh -c "sleep 30m" \;
Isso primeiro executará o script e aguardará 30 minutos antes de passar para o próximo.
Por fim, se você precisar garantir que i) nunca tenha > 1 sync.php
em execução ao mesmo tempo e ii) cada script sync
seja executado após a conclusão do script replicator
correspondente, use isso como o comando que você dá ao cron:
find /var/sync/ -name 'Replicator.php' -execdir php {} \; ; find /var/sync/ -name 'sync.php' -execdir php {} \;
Os itens acima executarão cada um dos scripts Replicator.php
primeiro (um após o outro, não em paralelo) e, assim que terminarem, executarão cada um dos scripts sync.php
.