@adiunov
Предприниматель

Как настроить запуск php скрипта через cron (php-fpm)?

Никогда не сталкивался с cron. Помогите, пожалуйста.

Есть сервер. Там php-fpm (php 5.5).

Нужно настроить запуск php скрипта через cron:
1. Каждую минуту без отправки результата на почту
2. Каждый час с отправкой результата на почту

Путь к скрипту /server/cron/cron.php. Попробовал инструкции нагуглить, ничего не получилось. Подозреваю, что дело в пути к php (как его узнать?).

Объясните популярно, как настроить cron.
  • Вопрос задан
  • 17590 просмотров
Решения вопроса 1
@adiunov Автор вопроса
Предприниматель
Итоговое решение

Устанавливаем php5-cli
apt-get install php5-cli

1.
Добавляем в cron задачу, которая будет выполнятся каждую минуту.
Набираем crontab -e и добавляем
*/1 * * * * /usr/bin/php -q /server/cron/cron.php > /dev/null 2>&1

сохраняемся (у меня SHIFT+Z 2раза)
> /dev/null - означает отправку результатов, которые выдаст скрипт, в никуда.
2>&1 - избавляет администратора сервера от писем, если скрипт закончит работу с ошибками

2.
для отправки на почту воспользуемся mutt (почтовый клиент)
apt-get install mutt

добавляем в cron задачу, которая будет выполнятся каждый час (в ноль минут), сохранит результат выполнения скрипта в файл и отправит его на почту с темой cron-result (в нашем случае в теле письма, но можно и приложением).
Набираем crontab -e и добавляем
0 */1 * * * /usr/bin/php -q /server/cron/cron.php > /server/cron/cron.txt && mutt my@email.com -s cron-result < /server/cron/cron.txt

сохраняемся (у меня SHIFT+Z 2раза)

Все готово.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
click0
@click0
Системный & сетевой архитектор
Вы путаете использование php-fpm и php-cli
whereis php - покажет путь к php
еще при запуске cron нужно указывать полные пути к программам и env будет отличное от вашего shell
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
тот, который раз в минуту, скорее всего не нужен.
примерно 146% нубасов хотят запускать крон раз в минуту. 100% из них это не нужно.

Чтобы получать письма от крона в кронтабе написать
MAILTO=емейл

В письмах будут приходить сообщения об ошибках, буде таковые случатся.
Эти ошибки можно исправлять.
Исправлять реальные ошибки гораздо эффективнее, чем бегать с завязанными глазами в темной комнате и исправлять все что движется, как это принято в среде пользователей похапе.

Да, и перед тем как запихивать свою команду в крон, сначала надо потестировать ее в консоли. Тоэе сэкономит много времени.
Ну, это, конечно, если есть консоль, а не Панель Управления.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы