Выполнение PHP-файла из командной строки с динамическими параметрами

0

Мне нужно запустить один скрипт, который займет одну дату в качестве аргумента. Он настроен с использованием 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
Лучший ответ

Эта функция должна начать вас

iterdate() {
    cur="$1"
    end="$2"
    while [ $cur != $end ] 
    do
     echo php update_cron.php $cur 
     cur=$(date -d "$cur + 1 day"  +%Y-%m-%d)
    done
    }

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

$ iterdate 2013-10-05 2013-10-08
php update_cron.php 2013-10-05
php update_cron.php 2013-10-06
php update_cron.php 2013-10-07

Просто удалите эхо в нем, чтобы фактически запустить команду php update. Обратите внимание: если вам нужно запустить это в задании cron, вам может быть проще сделать скрипт, а не функцию. Затем скопируйте следующее в текстовый файл и сделайте его выполнимым

#!/bin/bash
cur="$1"
end="$2"
while [ $cur != $end ] 
do
  echo php update_cron.php $cur 
  cur=$(date -d "$cur + 1 day"  +%Y-%m-%d)
done

А потом

$ /path/to/iterdate.sh 2013-10-05 2013-10-08
php update_cron.php 2013-10-05
php update_cron.php 2013-10-06
php update_cron.php 2013-10-07
  • 0
    Здорово. Большое спасибо, приятель :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню