Используя Cacti, я пытаюсь запустить следующую команду:
php poller.php> test.cfg
Как и ожидалось, я получаю следующий вывод:
root@SLINUX01:[/usr/local/cacti]$tail -f test.cfg
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
05/12/2016 01:23:50 PM - POLLER: Poller[0] CACTI2RRD: /usr/bin/rrdtool update /usr/local/cacti/rra/stse01_traffic_in_14.rrd --template traffic_out:traffic_in 1463052230:2773678063:3900704413
05/12/2016 01:23:50 PM - POLLER: Poller[0] CACTI2RRD: /usr/bin/rrdtool update /usr/local/cacti/rra/stse01_traffic_in_15.rrd --template traffic_in:traffic_out 1463052230:1071486:1088742
05/12/2016 01:23:50 PM - SYSTEM STATS: Time:5.4128 Method:cmd.php Processes:1 Threads:N/A Hosts:3 HostsPerProcess:3 DataSources:9 RRDsProcessed:7
Loop Time is: 5.41
Sleep Time is: 294.58
Total Time is: 5.42
^C
И мои манипуляции обновились.
Теперь, используя crontab, я сделал следующее:
*/5 * * * * cacti php /usr/local/cacti/poller.php > /home/cacti/test.cfg &>/home/cacti/test.cfg
Но когда я захожу в /home/cacti/test.cfg после выполнения cron, я ничего не получаю, но cron запускает скрипт:
May 12 15:25:01 SLINUX01 CROND[19871]: (root) CMD (cacti php /usr/local/cacti/poller.php > /home/cacti/test.cfg &>/home/cacti/test.cfg)
Каков источник этой проблемы?
Заранее спасибо.
Ваша запись в журнале cron говорит только о том, что команда была пытался. Это не гарантирует, что команда была успешно запущена (проблемы с правами доступа; переменные окружения не установлены; не смонтирована файловая система).
Используете ли вы таблицу cron для того же пользователя, который может успешно запустить команду из командной строки?
Каковы точные пути при запуске из командной строки?
Обратите внимание, что в crontab вы пытаетесь вызвать php
не давая полного пути — это вполне может быть виновником.
Других решений пока нет …