Выполнить команду за две минуты

Я пытаюсь выполнить однострочный, используя.

В принципе, я хочу отправить SMS в какой-то момент в будущем.

Вот моя команда для отправки SMS:

 php -r 'include_once("/home/eamorr/open/open.ie/www/newsite/ajax/constants.php");sendCentralSMS("08574930418","hi");' 

Вышеизложенное отлично работает! Я получаю свои sms через пару секунд.

Теперь, как я могу запустить эту команду в будущем?

Я пытался

 php -r 'include_once("/home/eamorr/open/open.ie/www/newsite/ajax/constants.php");sendCentralSMS("08574930418","hi");' | at now + 2 minutes 

Но это немедленно посылает мою команду! Я хочу отправить сообщение через 2 минуты!

3 Solutions collect form web for “Выполнить команду за две минуты”

Потому что это не так, как работает команда. принимает команду через STDIN. То, что вы делаете выше, запускает скрипт и дает его выход (если есть) at .

Это функциональный эквивалент того, что вы делаете:

 echo hey | at now + 1 minute 

Поскольку echo hey выдает только слово «эй», слово «эй» – это все, что я даю, чтобы выполнить одну минуту в будущем. Вероятно, вы захотите повторить команду full php вместо того, чтобы запускать ее самостоятельно. В моем примере:

 echo "echo hey" | at now + 1 minute 

РЕДАКТИРОВАТЬ:

Как отметил @Gnouc, у вас также была опечатка в вашей спецификации. Вы должны сказать «сейчас», чтобы он знал, в какое время вы добавляете 1 минуту.

У вас есть ошибка в синтаксисе:

 php -r 'include_once("/home/eamorr/open/open.ie/www/newsite/ajax/constants.php");sendCentralSMS("08574930418","hi");' | at now + 2 minutes 

От man at :

 You can also give times like now + count time-units, where the time-units can be minutes, hours, days, or weeks and you can tell at to run the job today by suffixing the time with today and to run the job tomorrow by suffixing the time with tomorrow. 

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

 $ cat sms.sh #!/bin/bash /usr/bin/php -r 'include_once("/home/eamorr/open/open.ie/www/newsite/ajax/constants.php");sendCentralSMS("08574930418","hi");' 

Затем:

 $ at -f sms.sh now + 2 minutes 

Если вам просто нужно отправить сообщение через 2 минуты независимо от подхода, я бы предложил использовать sleep .

 ( sleep 120 ; php -r 'include_once("/home/eamorr/open/open.ie/www/newsite /ajax/constants.php");sendCentralSMS("08574930418","hi");' ) 
  • Получить pid длинной команды, выполняемой через
  • как правильно планировать задачу, которая планирует задачу с помощью «at» (atd)? или как правильно указывать / бежать в bash
  • по команде: Garbled time
  • Можно ли скопировать расширение в команде `at`?
  • Почему `at` предупреждает меня, что команды будут выполняться с помощью / bin / sh? Что делать, если я хочу другую оболочку?
  • Почему не работает dzen2 при вызове через?
  • Удалить все «в» Задания, кроме первых пяти заданий
  • Остановка одной команды, запланированной командой, кроме других
  • Экстракт TOC файла epub
  • Linux и Unix - лучшая ОС в мире.