Executando o arquivo PHP a partir da linha de comando com parâmetros dinâmicos

1

Eu preciso executar um script que leve uma data como argumento. Ele é configurado usando o cron para ser executado diariamente, mas eu preciso executá-lo por um intervalo de tempo agora. O problema é que isso irá buscar todos os resultados se for executado por um dia devido ao tamanho enorme da tabela. Então, é possível fornecer dinamicamente a cada data a partir da data de início a partir de um script de shell?

Por exemplo: se eu precisar executar update_cron.php de '2013-10-05' , ele precisará ser executado

php update_cron.php '2013-10-05'
php update_cron.php '2013-10-06'
php update_cron.php '2013-10-07'

até hoje (ou a data final especificada). Eu sou muito novo no shell de scripts e, portanto, será útil se alguém puder dar uma contribuição para isso.

    
por Happy Coder 08.11.2014 / 11:59

1 resposta

1

Você pode usar esse código:

start_date="2014-10-05"
days=2
for i in $(seq 0 $days);
do
  php update_cron.php $(date "+%Y-%m-%d" --date="$start_date +$i days")
done

Explicação:

  • start_date="2014-10-05" : define a data em que você começa
  • days=2 : define o número de dias que você deseja (nota: 2 significa 3 dias no total, o dia 0 também conta)
  • for i in $(seq 0 $days); : percorre $days vezes
  • php update_cron.php $(...) : executa php update_cron.php com o argumento
  • $(date "+%Y-%m-%d" --date="$start_date +$i days") : formata a data e estima a data em $start_date plus $i dias
por 08.11.2014 / 16:22