Содержание

Выполнение заданий по 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:

Или Timeweb.ru:

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

запуск РНР скрипта автоматически 1 раз в сутки | PHPClub

sipliy
Утомленный солнцем