2010-09-28 3 views
3

У меня есть PHP-скрипт, который я постоянно обновляю и должен запускаться на нескольких серверах для сбора данных на основе файлов конфигурации, таких как php ini, phpinfo и другие файлы конфигурации. Мне нужно убедиться, что все, что запускается, всегда является последней версией скрипта, но это вызывает раздражающую проблему обслуживания, потому что скрипт всегда обновляется.Запуск постоянно обновляемого скрипта

Поэтому я хотел бы сохранить PHP-скрипт в другом центральном расположении и иметь общий сценарий, который никогда не изменяется на интересующем сервере. Общий PHP-скрипт отправляет данные в центральный скрипт и получает обратную связь, без необходимости посещать сервер, чтобы изменить код на новый скрипт. Как это может быть сделано? Это API? и каков наилучший способ сделать это? Я использую PHP

Если я не ясно объясняю проблему, пожалуйста, спросите меня, есть ли что-то непонятное.

ответ

3

Вы можете развернуть файл php, который будет проверяться на центральном сервере, если есть новая версия скрипта, если она загрузится, запустите его и сохраните эту версию вместе с тегом версии.

В следующий раз проверьте новую версию, если версия такая же, просто запустите локальный скрипт. Повторите первый шаг.

При таком подходе вы можете также получить некоторые дополнительные преимущества, такие как возможность настройки пользовательского процесса в зависимости от машины, выполняющей процесс или получить отчеты отправляются обратно на центральный сервер и т.д.

2

Похоже, вам нужен инструмент управления конфигурацией, такой как кукольный или cfengine.

2

Для этого можно установить общий ресурс NFS. Или, если вам нужна более высокая производительность, iSCSI через GigE будет соответствовать счету. Но реалистично rsync, вероятно, сделает вас хорошо.

2

scheduledtask.sh:

svn update DataGatherer.php 
php DataGatherer.php 
+0

Если у вас нет доступа к VCS с сервера, то также возможно запустить сценарий для scp-зонда на сервере, удаленный запуск и отключение вывода - вы, конечно же, не выполняете хотите иметь возможность развернуть PHP-код через HTTP! – symcbean

+0

Основываясь на том, что ОП описал с версией, я настоятельно рекомендую VCS. Тем не менее, scp/ssh также является отличным решением. Вы можете установить разрешения для сценария на 700, чтобы избежать каких-либо проблем с безопасностью. –