Intereting Posts
Принтер по умолчанию в диалоговом окне принтера KDE 4 Как перенести файлы с полного раздела на один с большим количеством комнат? Внезапное выключение ПК, датчики показывают нормальные темпы, прерывания прерывания температуры показывают 1276 Получение текущего пути в записи .desktop для команды ICON SSH. Возможно ли, чтобы сеанс SSH полностью контролировал клиента? что означает «уровень выполнения процессора»? Как сопоставить сложную комбинацию с несколькими ключами в ярлыке для выполнения процесса, в X (через WM и т. Д.)? Узнайте, какой метод кодирования меньше использует для отображения содержимого текстового файла? Замки замков и прокрутки блокировки мигают, и все замораживается grep: Синтаксическая ошибка возле неожиданного токена `(' подключить две виртуальные машины и одну виртуальную машину к Интернету Как исправить определение срока использования экрана GNU при запуске в автономном режиме? Как восстановить отсутствующий файл / var / lib / dpkg / status? Существует ли решение P2P VPN, которое не требует открытия порта (пересылки)? Как увидеть фактические серверы имен домена вместо «nsrecords»,

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

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

В принципе, я хочу отправить 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 минуты!

Потому что это не так, как работает команда. принимает команду через 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");' )