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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

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

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

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

Оффлайн peregrine

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

Оффлайн EvangelionDeath

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

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

Код: (bash) [Выделить]
* * * * * <path_to_php_file> && <path_to_other_script> # второй скрипт выполнится только в случае успеха в выполнении первого
* * * * * <path_to_php_file> ; <path_to_other_script> # второй скрипт выполнится не зависимо от результатов первого, но в любом случае после завершения
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн iaks

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

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

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

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

 

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