Налаштування простого завдання 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:
Ось що потрібно зробити:
- Натисніть esc;
- Натисніть i , щоб розпочати редагування файлу;
- Вставте команду cron у файл;
- Натисніть esc , щоб вийти з режиму редагування;
- Введіть :wq , щоб зберегти зміни у файлі ( w - write ) і вийти ( q - quit ).
Тепер crontab збережено, і електронний лист повинен відправлятися один раз на день опівночі. Ви можете встановити * / 5 * * * * - кожні 5 хвилин, щоб перевірити його роботу.
Також можна додати до файлу кілька завдань cron. Для цього помістіть кожну команду в окремий рядок.
Переклад статті дружною командою проекту Сайтобудування від А до Я.