Как проверить, запущено ли задание cron или нет?
Я добавил следующую команду в crontab -e
:
15 * * * * php /home/rizwan/PHP-workspace/mgstore/testcron.php
Мне нужно бежать testcron.php
каждые 15 минут; для тестирования я использовал следующий код PHP в testcron.php
:
<?php
echo "test";
3 ответа
15 * * * * /usr/bin/php /home/rizwan/PHP-workspace/mgstore/testcron.php >> /home/rizwan/cron.out
это работало. Но у меня есть один скрипт php, для добавления клиентов из magento в ERP, когда я запускаю скрипт вручную, он запрашивает авторизацию, после принятия он создает клиентов в ERP из magento, мне нужно всякий раз, когда я добавляю клиента в magento после 5 или через 10 минут этот скрипт должен запуститься и добавить клиента в ERP. Как это можно сделать?, Если у кого-то есть идеи, пожалуйста, помогите?
В PHP вы можете использовать оператор Backtick или shell_exec()
функция для запуска команды в системной оболочке по умолчанию; ты можешь бежать pgrep 'php /home/rizwan/PHP-workspace/mgstore/testcron.php'
и оцените его код возврата; либо это:
<?php
if(!($PID = `pgrep 'php /home/rizwan/PHP-workspace/mgstore/testcron.php'`))
echo 'Process is running with PID ' . $PID . '.';
?>
Или это:
<?php
if(!($PID = shell_exec("pgrep 'php /home/rizwan/PHP-workspace/mgstore/testcron.php'")))
echo 'Process is running with PID ' . $PID . '.';
?>
Сначала вы должны быть уверены, что запускаете исполняемый файл по полному пути. вы можете получить путь с помощью which
команда
$ which php
/usr/bin/php
Теперь запись в crontab должна быть:
15 * * * * /usr/bin/php /home/rizwan/PHP-workspace/mgstore/testcron.php
Теперь, чтобы проверить вывод, вы можете использовать трюк перенаправления, поэтому перенаправьте вывод в какой-то файл, а затем вы можете проверить файл, чтобы увидеть результат. Таким образом, запись будет:
15 * * * * /usr/bin/php /home/rizwan/PHP-workspace/mgstore/testcron.php >> /home/rizwan/cron.out
Теперь вы можете проверить файл в вашем доме с именем cron.out
и посмотрим, работает ли ваш хрон или нет.