Working with crontab

Working with crontab

cron – classic demon (computer program at systems class UNIX), used to periodically execute tasks at a specific time. Regular actions are described by instructions placed in crontab files and in special directories.

The name cron is derived from the Greek word χρόνος (hrnos) – time (in English – cronos). Cron developer, Ken Thompson (Ken Thompson), confirmed this privately with Brian Kernighan (Brian Kernighan).

Basic commands

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

Cron syntax

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

therefore, the following entries correspond to the following lines:

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

Examples of

*/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')]
Sidebar