На нашем сервере centos6. Я хотел бы выполнить php-скрипт в задании cron как пользователь apache, но, к сожалению, он не работает.
вот издание crontab (crontab -uapache -e)
24 17 * * * php /opt/test.php
и вот исходный код файла «test.php», который отлично работает с пользователем «apache» в качестве владельца.
<?php exec( 'touch /opt/test/test.txt');?>
Я пытаюсь заменить php полным путем php (/ usr / local / php / bin / php), но также он не работает
Заранее спасибо, пожалуйста, помогите мне
Cron – это служба планирования по времени в операционных системах Linux / Unix. Задача Cron используется для планирования команд, которые будут выполняться периодически. Вы можете настроить команды или скрипты, которые будут повторяться в заданное время. Cron – один из самых полезных инструментов в Linux или UNIX, таких как операционные системы. Служба cron (daemon) работает в фоновом режиме и постоянно проверяет файл / etc / crontab , / etc / cron. / * каталогов. Он также проверяет каталог / var / spool / cron / .
В следующем примере команда crontab, показанная ниже, автоматически активирует задачи cron каждые десять минут:
*/10 * * * * /usr/bin/php /opt/test.php
В приведенном выше примере * / 10 * * * * означает, когда задача должна произойти. Первая цифра представляет минуты – в этом случае, каждую минуту. Другие цифры представляют, соответственно, час , день , месяц и день недели .
*
является подстановочным знаком, означающим «каждый раз» .
Начните с поиска своего двоичного кода PHP , введя в командной строке:
whereis php
Результат должен выглядеть примерно так:
php: / usr / bin / php /etc/php.ini /etc/php.d / usr / lib64 / php / usr / include / php / usr / share / php /usr/share/man/man1/php.1 .gz
Правильно укажите полный путь в вашей команде.
crontab -e
Чтобы узнать, что у вас есть в кронтабе .
Чтобы выйти из редактора vim без сохранения, просто нажмите:
Shift+:
А затем введите q!
У меня была такая же проблема … Мне пришлось запускать ее как пользователь.
00 * * * * root /usr/bin/php /var/virtual/hostname.nz/public_html/cronjob.php
Возможно, вам нужно запустить задание cron как пользователь с разрешениями на выполнение скрипта PHP. Попробуйте выполнить задание cron как root, используя команду runuser
( man runuser
). Или создайте систему crontable и запустите PHP-скрипт как авторизованный пользователь, как описано в @Philip.
Я подробно расскажу, как использовать cron в этой статье stackoverflow.
Как написать cron, который будет запускать скрипт каждый день в полночь?