1

Мне нужно запустить один скрипт, который будет принимать одну дату в качестве аргумента. Он сконфигурирован с использованием cron для ежедневного запуска, но сейчас мне нужно запустить его на определенный промежуток времени. Проблема заключается в том, что он будет получать все результаты, если он выполняется в течение одного дня из-за огромного размера таблицы. Так возможно ли динамически указывать каждую дату от даты начала из сценария оболочки?

Например: если мне нужно запустить update_cron.php из '2013-10-05' то он должен запустить

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

до сегодняшнего дня (или дата окончания, которая указана). Я очень новичок в написании сценариев оболочки, поэтому будет полезно, если кто-то может дать вклад в это.

1 ответ1

1

Вы можете использовать этот код:

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

Объяснение:

  • start_date="2014-10-05": устанавливает дату начала
  • days=2: устанавливает желаемое количество дней (примечание: 2 означает всего 3 дня, также считается день 0)
  • for i in $(seq 0 $days);: циклы через $days раз
  • php update_cron.php $(...): выполняет php update_cron.php с аргументом
  • $(date "+%Y-%m-%d" --date="$start_date +$i days"): форматирует дату и оценивает дату от $start_date плюс $i days

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .