Синтаксис для запису crontab виглядає правильно. Дійсно, якщо ви відредагуєте свій crontab за допомогою " crontab -e
" (як слід), ви отримаєте помилку, якщо все-таки задасте синтаксично недійсний запис crontab.
По-перше, чи /path_to_my_php_script/info.php
правильно працює командний рядок?
Якщо так, чи правильно він також працює так:
/bin/sh -c "(export PATH=/usr/bin:/bin; /path_to_my_php_script/info.php </dev/null)"
Якщо це працює, чи працює це так?
/bin/sh -c "(export PATH=/usr/bin:/bin; /path_to_my_php_script/info.php </dev/null >/dev/null 2>&1)"
Крок (3) схожий на те, як cron запустить вашу програму (як це зафіксовано у "man 5 cron").
Найбільш вірогідною проблемою є те, що CAT Pron використовує для запуску вашої програми надто обмежувальний характер. Таким чином, ви можете додати щось подібне до верхньої частини запису про свій crontab (вам потрібно буде додати будь-які каталоги, потрібні вашому сценарію):
PATH=~/bin:/usr/bin/:/bin
Також зауважте, що за замовчуванням cron буде використовуватись /bin/sh
, а не bash. Якщо вам потрібен bash, також додайте це до початку файлу crontab:
SHELL=/bin/bash
Зауважте, що обидві ці зміни стосуватимуться всіх записів на crontab. Якщо ви просто хочете змінити ці значення для своєї info.php
програми, ви можете зробити щось подібне:
*/2 * * * * /bin/bash -c ". ~/.bashrc; /path_to_my_php_script/info.php"
Варто також зазначити, що в системі, налаштованій на "пошту" (іншими словами, система, яка має налаштований MTA [sendmail / postfix / тощо]), весь вихід із програм crontab надсилається вам електронною поштою автоматично. У настільній системі Ubuntu за замовчуванням не буде налаштована локальна пошта, але якщо ви працюєте на сервері, ви можете просто набрати "пошту" в терміналі, щоб побачити всі ці повідомлення електронної пошти. Це також стосується команди " at
".