Você só precisa fazer as contas sozinho para criar os trabalhos necessários para atingir seu tempo.
0 0-23/7 * * * whatever
30 3-23/7 * * * whatever
Um algoritmo simples pode ser concluído a partir desses dois exemplos (quando houver um deslocamento de 30 minutos):
- Adicione duas entradas: uma com 0 minutos de diferença e outra com 30 minutos de diferença.
- Especifique a largura do intervalo de horas igual a
duration * 2
. - Especifique o deslocamento de horas: começa com 0 e o outro começa com a duração depois de descartar parte de 30 minutos.
Se você pensa mais, pode encontrar soluções semelhantes para algo como a cada 75 minutos.
Editar:
O Cron não pode ser usado para todos os tipos de trabalhos agendados. Por exemplo, executando um trabalho uma vez por mês no último dia do mês. Você não pode simplesmente fazer isso com o cron porque o último dia do mês muda de mês para outro. Para resolver isso, você pode executar um cron job no intervalo possível de valores do último dia do mês (28-31) e verificar se realmente é o último dia ou não no script antes de realizar o trabalho real.