Как запустить 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 или от Jan до Dec, вы можете использовать первые три буквы названия каждого месяца, например Jan или Jun.
- День недели - принимает значения от 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 * * * * показывает, когда должна выполняться задача. Первая цифра показывает минуты - в этом случае каждые "десять" минут. Остальные цифры показывают, соответственно, час, день, месяц и день недели.
Вам также может быть интересно прочитать следующие связанные статьи.
- Использование оболочки для автоматизации задач по обслуживанию системы Linux
- 12 полезных команд для PHP, которые должен знать каждый пользователь Linux
- Как запускать PHP-коды в терминале Linux
- 30 полезных команд Linux для системных администраторов
Вот и всё! Мы надеемся, что вы найдете эту статью полезной. Если у вас есть какие-либо вопросы или дополнительные идеи, которыми вы хотите поделиться по этой теме, воспользуйтесь формой комментариев ниже.