Site icon IT Draft

Работаем с crontab

Работаем с crontab

Работаем с crontab

cron — классический демон (компьютерная программа в системах класса UNIX), использующийся для периодического выполнения заданий в определённое время. Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные каталоги.

Название cron образовано от греческого слова χρόνος (хрόнос) — время (по-английски — cronos). Разработчик cron, Кен Томпсон (Ken Thompson), подтвердил это в частной беседе с Брайаном Керниганом (Brian Kernighan).

Основные команды

[root@localhost]# crontab -u %username% - определяет пользователя чьи задачи будут просматриваться/редактироваться, отсутствие данного параметра устанавливает текущего пользователя;
[root@localhost]# crontab -l - показывает список текущих задач;
[root@localhost]# crontab -e - запускает редактор планировщика задач;
[root@localhost]# crontab -r - удаляет все текущие задачи.

Синтаксис cron

    *    *   *     *        *        команда
|минута|час|день|месяц|день недели|
#      - комментарий (строки начинающиеся с данного символа не выполняются);
,      - перечисление значений (1,2,3,4);
/      - каждые n раз (*/n - каждые n, */5 - каждые 5, */2 - каждые 2);
-      - интервал значений (1-5 - с 1 до 5, 4-6 - с 4 до 6).

следовательно, следующие записи соответствуют следующим строкам:

0 5 * * * - каждый день в 5:00;
*/10 * * * * - каждые 10 минут;
0 0 1 1 * - 1 января каждого года;
0 9 * * 1,3,5 - понедельник, среду и пятницу в 9 утра;
0 0 1 * * - каждое 1-е число месяца.

Примеры

Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров

Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.


*/5 * * * * root /home/script.sh - запускать команду каждые пять минут
0 */3 * * * root /home/script.sh - запускать каждые три часа
0 12-16 * * * root /home/script.sh - запускать команду каждый час с 12 до 16 (в 12, 13, 14, 15 и 16) 
0 12,16,18 * * * root /home/script.sh - запускать команду каждый час в 12, 16 и 18 часов 
*/1 * * * * /usr/bin/php /home/test.php   -   запуск каждую минуту php-скрипта test.php
0 */1 * * * /usr/bin/perl /home/test.pl     -   запуск каждый час perl-скрипта test.pl
*/5 * * * * root /home/script.sh > /home/log.txt 2>&1 - запускать команду каждые пять минут и записать результат выполнения в лог (перезапись лога)
*/5 * * * * root /home/script.sh >> /home/log.txt 2>&1 - запускать команду каждые пять минут и записать результат выполнения в лог (не перезаписывать файл)
*/5 * * * * /home/edigaryev/test.sh > /home/edigaryev/test-$RANDOM.log 2>&1 - запускать команду каждые пять минут и записать результат выполнения в лог, при этом имя лога меняется ($RANDOM)
*/5 * * * * /home/edigaryev/test.sh > /home/edigaryev/test-$(date '+%Y-%m-%d_%H-%M-%S').log 2>&1 - запускать команду каждые пять минут и записать результат выполнения в лог, при этом имя лога меняется [$(date '+%Y-%m-%d_%H-%M-%S')]
Exit mobile version