Поиск по сайту:

Как запустить PHP-скрипт от имени обычного пользователя с помощью Cron


Cron — мощная утилита для планирования заданий по времени в Unix-подобных операционных системах, включая Linux. Он запускается как демон и может использоваться для планирования таких заданий, как команды или сценарии оболочки для выполнения резервного копирования, планирования обновлений и многого другого, которые запускаются периодически и автоматически в фоновом режиме в определенное время, даты или интервалы.

Одним из ограничений cron является то, что он предполагает, что система будет работать вечно; поэтому он подходит для серверов, отличных от настольных компьютеров. Кроме того, вы можете запланировать задачу на определенное или более позднее время, используя команды «at» или «batch», но задача запускается только один раз (она не повторяется).

Рекомендуется к прочтению: Как планировать задания с помощью Anacron в Linux

В этой статье мы объясним, как разрешить обычному пользователю системы запускать или выполнять PHP-скрипт через планировщик заданий cron в Linux.

Вы можете планировать задания с помощью программы crontab (CRON TABle). Каждый пользователь может иметь свой собственный файл crontab, состоящий из шести полей для определения задания:

  • Минута – принимает значения от 0 до 59.
  • Час – принимает значения от 0 до 23.
  • День месяца – сохраняет значения от 1 до 31.
  • Месяц года – хранятся значения от 1 до 12 или от января до декабря. Вы можете использовать первые три буквы названия каждого месяца, например, январь или июнь.
  • День недели – содержит значения от 0 до 6 или с воскресенья по субботу. Здесь также вы можете использовать первые три буквы названия каждого дня, например, воскресенье или среда.
  • Команда – команда, которую необходимо выполнить.

Чтобы создавать или редактировать записи в собственном файле crontab, введите:

crontab -e

А чтобы просмотреть все записи crontab, введите следующую команду (которая просто выведет файл crontab на стандартный вывод):

crontab -l

Однако, если вы являетесь системным администратором и хотите выполнить сценарий PHP от имени другого пользователя, вам необходимо запланировать его в файле /etc/crontab или файле crontab пользователя root, который поддерживает дополнительный файл для указания Имя пользователя:

sudo vi /etc/crontab

Запланируйте выполнение PHP-скрипта следующим образом: укажите имя пользователя после раздела времени.

0 0 * * * tecmint /usr/bin/php -f /var/www/test_site/cronjobs/backup.php

Приведенная выше запись выполняет сценарий /var/www/test_site/cronjobs/backup.php каждый день в полночь от имени пользователя tecmint.

Если вы хотите автоматически выполнять приведенный выше скрипт каждые десять минут, добавьте следующую запись в файл crontab.

*/10 * * * * tecmint /usr/bin/php -f /var/www/test_site/cronjobs/backup.php

В приведенном выше примере */10 * * * * указывает, когда должно выполняться задание. На первом рисунке показаны минуты – в данном случае каждые "десять" минут. Остальные цифры показывают соответственно час, день, месяц и день недели.

Вам также может быть интересно прочитать следующие статьи по теме.

  1. Использование сценариев оболочки для автоматизации задач обслуживания системы Linux
  2. 12 полезных способов использования командной строки PHP, которые должен знать каждый пользователь Linux
  3. Как запускать PHP-коды в терминале Linux
  4. 30 полезных команд Linux для системных администраторов

Вот и все! Мы надеемся, что вы найдете эту статью полезной. Если у вас есть какие-либо вопросы или дополнительные идеи по этой теме, используйте форму комментариев ниже.