Выполнение заданий по Cron

Cron — UNIX-программа, которая используются для периодического выполнения заданий в определённое время. Расписание и действия описываются инструкциями в файлах crontab, их можно посмотреть через SSH, командой:

crontab -l

Файл с заданиями, выглядит примерно так:

crontab -l
*    *     *    *    *    /usr/local/script.sh
o    */2   *    *    *    /Usr/local/bin/wget -O - -q "https://example.com/update.php"

Для редактирования используется команда:

crontab -e

Редактирование в консоле крайне не удобно, поэтому на большинстве хостингов имеется web-интерфейс, что достаточно упрощает настройку, например, Masterhost.ru:

Crontab в Masterhost

Или Timeweb.ru:

Crontab в Timeweb
1

Команды делятся на две части – временной интервал и команда:

[минута] [час] [день месяца] [месяц] [день недели] [пользователь] [команда]

В большинстве хостингах «Пользователь» не доступен, далее в примерах он не указан.

2

Задается числом от 0 до 59.

Каждую минуту:

# Минута   Час        День       Месяц      День недели
*          *          *          *          *

Каждую чётную минуту:

# Минута   Час        День       Месяц      День недели
0-59/2     *          *          *          *

Каждую нечётную минуту:

# Минута   Час        День       Месяц      День недели
1-59/2     *          *          *          *

Каждые 10 минут:

# Минута   Час        День       Месяц      День недели
*/10       *          *          *          *

Задаются числом от 0 до 23.

Каждый час:

# Минута   Час        День       Месяц      День недели
0          */1        *          *          *

Каждые 3 часа:

# Минута   Час        День       Месяц      День недели
0          */3        *          *          *

Каждый день, в 12:00:

# Минута   Час        День       Месяц      День недели
0          12         *          *          *

Несколько раз в день (6:00, 12:00, 18:00):

# Минута   Час        День       Месяц      День недели
0          6,12,18    *          *          *

Дени месяца, от 1 до 31.

1-го и 15-го числа, в 9:00:

# Минута   Час        День       Месяц      День недели
0          9          1,15       *          *

Задаются последним параметром: 1 - пн., 2 - вт., 3 - ср., 4 - чт., 5 - пт., 6 - сб., 0 или 7 - вс.

Каждый понедельник, в 6:30:

# Минута   Час        День       Месяц      День недели
30          6         *          *          1

Каждый рабочий день в 9:00:

# Минута   Час        День       Месяц      День недели
0          9          *          *          1-5

Несколько раз в неделю (понедельник, четверг):

# Минута   Час        День       Месяц      День недели
0          9          *          *          1,4

Задаются числом от 1 до 12.

Раз в месяц (9:00, первого числа):

# Минута   Час        День       Месяц      День недели
0          9          1          *          *

В новый год:

# Минута   Час        День       Месяц      День недели
59         23         31         12         *

Для удобства доступны следующие константы:

  • @reboot – при перезагрузки
  • @yearly, @annually – раз год
  • @monthly – раз в месяц
  • @weekly – раз в неделю
  • @daily, @midnight – каждый день
  • @hourly – каждый час
3
Во второй части указываются команды unix shell, можно указать несколько команд, разделив их точкой с запятой.

Запустить bash-скрипт:

* * * * * /usr/local/script.sh

Запустить PHP-скрипт:

* * * * * /usr/local/bin/wget -O - -q "https://example.com/update.php"

Добавить директорию в архив:

* * * * * zip -r /home/backup.zip /home/site/www

Удалить файлы из директории:

* * * * * rm -rf /tmp/folder/*

Будьте осторожны при использовании команды rm -rf, перед её использованием сделайте резервную копию файлов.

Сделать бэкап БД в архиве ZIP:

* * * * * mysqldump -uЛОГИН -hХОСТ -pПАРОЛЬ НАЗВАНИЕ_БД | gzip > /home/backup-`date +\%Y_\%m_\%d`_sql.gz
26.02.2020, обновлено 16.11.2021
55059

Комментарии

, чтобы добавить комментарий.

Другие публикации

Массив $_SERVER
Описание значений глобального массива $_SERVER с примерами.
58696
+4
Загрузка файлов на сервер PHP
В статье приведен пример формы и php-скрипта для безопасной загрузки файлов на сервер, возможные ошибки и рекомендации при работе с данной темой.
75692
+25
date() – форматирование даты PHP
date($format, $timestamp) – форматирует дату/время по шаблону, где...
78369
+1
Синхронизация файлов между сайтами с помощью Rsync
Такой вопрос возникает когда у сайта есть копия, например региональный сайт или сайт на другом языке, но при этом база...
5982
+2
Календарь jQuery UI Datepicker
DatePicker – хороший и функциональный плагин для выбора даты, легко настраивается и привязывается к стандартному полю ввода формы.
82502
+6
Календарь на PHP
PHP-класс для вывода календаря на месяц, год или любой другой интервал с возможностью выделить отдельные даты и вывести к ним подсказки.
35072
+12