Налаштування простого завдання cron на Linux, Вебмайстру

Нещодавно мені довелося налаштовувати заплановане завдання на сервері, і вперше це важко, і навіть страшнувато. Тому я вирішила написати статтю про етапи налаштування Cron. Ми створимо простий PHP-скрипт для надсилання електронної пошти один раз на день.

Необхідний базовий рівень

  • Базовий досвід роботи з командним рядком;
  • Навички роботи з SSH на сервері Linux.
  • Навчитися налаштовувати просте заплановане завдання (завдання cron) у середовищі Linux-сервера;
  • Встановити завдання cron для надсилання електронної пошти щодня у вказаний час.

Надсилання електронної пошти за допомогою PHP

Спочатку потрібно створити простий PHP-скрипт для тестування налаштування Cron Linux. Я збираюся створити файл, який надсилає електронну пошту:

Localhost не налаштований для відправки PHP-пошти, тому цей скрипт повинен запускатися із середовища Linux.

Основний синтаксис Cron

Є корисний сайт під назвою Crontab Generator, який може налаштувати Cron PHP, але спочатку ми коротко розглянемо основний синтаксис.

Приклад роботи Cron:

Частини команди cron

Команда cron складається з чотирьох основних частин:

Час виконання – встановлює хвилини, години, дні, місяці та день тижня.

Виконання - завдання cron має викликати PHP, який знаходиться в папці /usr/bin/php.

Шлях до скрипту – повний шлях до файлу, який потрібно запустити.

Результат (необов'язково) – можна записати результат у файл або відкинути цю частину > /dev/null 2&1 .

У наведеному вище прикладі завдання Cron Linux налаштоване на відправлення електронної пошти щохвилини щодня. Зірочка - це знак підстановки,що означає «все».

Ось кілька простих прикладів:

Існують й інші налаштування, наприклад, для непарних/парних днів, кожні 5 хвилин і т.д. Також є безліч ресурсів, на яких можна знайти конкретні налаштування.

Налаштування завдання Cron

Якщо cron налаштований під обліковим записом root , потрібно запустити sudo перед запуском коду.

Команда cron називається crontab. Ми задаємо для нашого завдання виконання розсилки електронної пошти один раз на день, тому повна команда буде такою:

Після того, як ви зайшли на сервер SSH, можна перевірити, чи існують інші поточні завдання. Це можна зробити за допомогою наступної команди.

Тепер ми відредагуємо crontab:

Ось що потрібно зробити:

  1. Натисніть esc;
  2. Натисніть i , щоб розпочати редагування файлу;
  3. Вставте команду cron у файл;
  4. Натисніть esc , щоб вийти з режиму редагування;
  5. Введіть :wq , щоб зберегти зміни у файлі ( w - write ) і вийти ( q - quit ).

Тепер crontab збережено, і електронний лист повинен відправлятися один раз на день опівночі. Ви можете встановити * / 5 * * * * - кожні 5 хвилин, щоб перевірити його роботу.

Також можна додати до файлу кілька завдань cron. Для цього помістіть кожну команду в окремий рядок.

Переклад статті дружною командою проекту Сайтобудування від А до Я.