Что такое cron и как он используется в Linux

by itisgood

Что такое cron?

Cron – это планировщик заданий, основанный на времени, он настроен на выполнение команд в заданное время или через определенные промежутки времени.

Cron контролируется набором файлов, называемых crontabs.

Главный файл находится в /etc/crontab (который в Red Hat Enterprise Linux немного отличается от других * никсов) вместе с файлами crontab для пользователей в /var/spool/cron/.

В последнем каталоге файлы имеют то же имя, что и имя пользователя.

В Red Hat Enterprise Linux системному администратору проще настраивать задания cron, чем в других дистрибутивах.

Файл /etc/crontab автоматически выполняет элементы в нескольких подкаталогах через регулярные промежутки времени.

/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

Все, что нужно сделать системному администратору – это поместить скрипт оболочки или ссылку на исполняемый файл в один из каталогов, и он будет автоматически запущен в соответствующее время.

Настройка crontab на уровне пользователя несколько отличается.

Файлы в /var/spool/cron не редактируются напрямую.

Вместо этого для управления ими используется программа crontab.

В зависимости от безопасности системы, все пользователи, только некоторые или только пользователь root, смогут использовать crontab (см. Разделы man crontab /etc/cron.allow и /etc/cron.deny для получения дополнительной информации).

SYNOPSIS
        crontab [ -u user ] file
        crontab [ -u user ] { -l | -r | -e }

 file       store the specified file as the current crontab
 -u          user the crontab file being manipulated is for
 -l          display the current crontab
 -r          remove current crontab
 -e          edit the current crontab (editor depends on system
             variables and will probably be vi unless your sysadmin
             has changed it).

Если вы не знакомы с общесистемным редактором по умолчанию vi, то, вероятно, лучше всего создать / отредактировать файл с помощью знакомого редактора и использовать опцию file с первой командой.

Настройка Crontab

Пустые строки, начальные пробелы и табуляции игнорируются.

Строки, начинающиеся с #, являются комментариями и игнорируются.

Комментарии не могут находиться в одной строке с командами cron; они будут считаться частью команды.

Комментарии не допускаются в той же строке, что и параметры среды, по аналогичным причинам.

Syntax
Environment settings take the format of

     name = value

(The spaces around the = are optional.)

Each cron command has 5 time and date fields, followed by a user name, and if
this is the system crontab file, it will be followed by a command.  Commands are
executed when the time specified by the time/date fields matches the
current time.

              field          allowed values
              -----          --------------
              minute         0-59
              hour           0-23
              day of month   0-31
              month          0-12 (or names, see below)
              day of week    0-7 (0 or 7 is Sun, or use names)

A field may be an asterisk (*), which always stands for ``first to
last''.  So used in the hour field, it means 'every hour from 00:00 to
23:00"

Example Crontab:

#      r----minute
#      |  r-----hour
#      |  |  r------day of the month
#      |  |  |  r------month
#      |  |  |  |  r------day of the week
#      |  |  |  |  |     |------ command to run ------------->
#      |  |  |  |  |     |
       5  0  *  *  *       $HOME/bin/daily.job >> $HOME/tmp/out 2>?
# run five minutes after midnight, every day
       15 14 1  *  *     $HOME/bin/monthly

# run at 2:15pm on the first of every month -- output mailed to paul
       0  22 *  *  1-5   mail -s "It's 10pm" joe%Joe,%%Where are your kids?%

# print out the message at 4:05 every sunday.
       5  4  *  *  sun     echo "run at 5 after 4 every sunday"

Если этот файл был сохранен как john.cr, то его можно использовать для хранения crontab для пользователя john.

# crontab -u paul paul.ct

You may also like

Leave a Comment