Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Как запустить PHP и затем консольную программу из скрипта по расписанию?  (Прочитано 866 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн iaks

  • Автор темы
  • Участник
  • *
  • Сообщений: 217
    • Просмотр профиля
Всем привет.

Прошу сильно не пинать и не стебаться. Для Меня задача совсем новая - помогите пожалуйста добрым советом.

Вопросы могут показаться глупыми, но я делаю это в первый раз, и очень не хотелось бы напортачить :-[


1. Есть PHP скрипт.
2. Его надо периодически запускать в одно и то же время.
3. После обработки PHP должна запуститься консольная программа

Как это правильно организовать?

Мои мысли:
1. Создаем исполняемый скрипт (sh или bash)
2. В скрипте Указываем PHP и консольную команду для запуска программы
3. Делаем правило для sh/bash в cron - для запуска по расписанию


Вопросы:
1. Что лучше использовать bash или sh?
2. Не произойдет ли так что PHP еще не отработает, а CLI программа уже запуститься?
3. Как Передать из PHP в CLI программу переменные?
4. Можно ли в запускать несколько sh/bash от одного пользователя одновременно, Будут ли они работать параллельно?
5. Можно ли Назначить в Cron запуск нескольких скриптов на одно и то-же время?

Заранее благодарю за советы.



В итоге реализовал следующим образом:
1. Запуск PHP через cron
2. Запуск скрипта в конце PHP через exec()
3. profit!!!

« Последнее редактирование: 02 Декабрь 2016, 04:46:12 от iaks »
Lubuntu
Xubuntu

Онлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 4315
  • Все по палатам!
    • Просмотр профиля
Да всё можно...
Переменные я, к примеру, передаю через файлы в /tmp, в скрипте можно сделать и через стандартные потоки ввода/вывода
Если запускать в одно время, то можно и в одном скрипте сделать.
Про скрипты http://www.opennet.ru/docs/RUS/bash_scripting_guide/
Извините, я все еще учусь

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7083
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Берешь PHP скрипт, делаешь его исполняемым и запускаешь. Автоматизируешь через cron.

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3095
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
iaks,

все делается в одну строку cron (все скрипты исполняемы и в начале файла указан интерпретатор), время проставите сами

Код: Bash
  1. * * * * * <path_to_php_file> && <path_to_other_script> # второй скрипт выполнится только в случае успеха в выполнении первого
  2. * * * * * <path_to_php_file> ; <path_to_other_script> # второй скрипт выполнится не зависимо от результатов первого, но в любом случае после завершения
  3.  
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн iaks

  • Автор темы
  • Участник
  • *
  • Сообщений: 217
    • Просмотр профиля
Всем спасибо!

Самое то:
все делается в одну строку cron (все скрипты исполняемы и в начале файла указан интерпретатор), время проставите сами

Но....
Не разобрался как сделать проброс переменных из PHP в Bash (

В итоге реализовал следующим образом:
1. Запуск PHP через cron
2. Запуск скрипта в конце PHP через exec()
3. profit!!!
Lubuntu
Xubuntu

 

Страница сгенерирована за 0.07 секунд. Запросов: 24.