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:
Команды делятся на две части – временной интервал и команда:
[минута] [час] [день месяца] [месяц] [день недели] [пользователь] [команда]
В большинстве хостингах «Пользователь» не доступен, далее в примерах он не указан.
Минуты
Задается числом от 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– каждый час
Запустить 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





