crontab позволяет вам периодически выполнять команды через определенные промежутки времени с тем преимуществом, что вам нет необходимости входить в систему. crontab отправит вам письмо с отчетом о выполнении вашей команды. Вы можете указывать интервалы в минутах, часах, днях и даже месяцах. В зависимости от указанных опций, crontab будет работать по-разному:
Давайте начнем с редактирования
crontab
'а. Если вы введете
команду crontab -e, перед вами
окажется ваш любимый текстовый редактор,
если у вас установлена переменная
окружения EDITOR
или
VISUAL
, в противном случае будет
использован Vi. Строка в файле
crontab
состоит из шести полей.
Первые пять полей - это интервалы времени
в минутах, часах, днях месяца, месяцах и
днях недели соответственно. Шестое поле -
это выполняемая команда. Строки,
начинающиеся с #
- это
комментарии, они будут проигнорированы
демоном crond (программой, отвечающей за
выполнение заданий из crontab
).
Этот формат несколько отличается для
системного crontab
'а (файл
/etc/crontab
). В нем в качестве
шестого поля выступает имя пользователя,
которое будет использовано для запуска
программы из седьмого поля. Этот файл
должен быть использован только для задач
администрирования и для запуска заданий
пользователей, которые существуют только
для обеспечения безопасности системы
(такие как пользователь демона
антивируса или пользователь для запуска
сервера баз данных). Вот пример файла
crontab
:
# Если вы не хотите получать почту, просто # закомментируйте следующую строку #MAILTO="ваш_электронный_адрес" # # Уведомление о новых изображениях каждые 2 дня в 14:00, # из примера выше - после чего, выполнение "retouch" # для файла "stamp". Знак "%" означает # новую строку, это позволяет вам указывать несколько команд # в одной строке. 0 14 */2 * * find /shared/images \ -cnewer /shared/images/stamp \ -a -iregex ".*\.jpe?g" \ -a -not -regex \ ".*/old/.*"%touch /shared/images/stamp # # Воспроизведение мелодии на каждое Рождество :) 0 0 25 12 * mpg123 $HOME/sounds/merryxmas.mp3 # # Каждый вторник в 17:00 вывод списка покупок... 0 17 * * 2 lpr $HOME/shopping-list.txt
Существует несколько способов указания
интервалов, кроме тех, что показаны в этом
примере. Вы можете указать набор
дискретных
значений, разделенных запятыми
(1,14,23
) или диапазон
(1-15
), или даже комбинировать их
(1-10,12-20
), а можно и с некоторым
шагом (1-12,20-27/2
). Теперь вашей
задачей будет найти полезные команды и
поместить их в этот файл!
Возможно, вы
хотели бы выполнить какую-нибудь команду
в определенный день, но только один раз.
Например, вам нужно напомнить себе о
сегодняшней встрече в 18:00. Вы работаете в
X, у вас установлен пакет
X11R6-contrib
и вы хотели бы
получить напоминание, скажем, в 17:30 о том,
что пора выходить. Тогда at - это то, что
вам нужно:
$ at 17:30 # Теперь перед вами приглашение "at" at> xmessage "Пора идти! Встреча в 18:00" # Нажмите CTRL-d для выхода at> <EOT> job 1 at 2005-02-23 17:30 $
Указывать время можно разными способами:
now +<интервал>
: означает
сейчас + интервал (Не обязателен.
Отсутствие интервала означает
немедленное выполнение). Синтаксис для
интервала:
<n>
(minutes|hours|days|weeks|months). Здесь
minutes - минуты, hours - часы, days - дни, weeks -
недели и months - месяцы. Например, вы можете
указать now + 1 hour
(через один час),
now + 3 days
(через трое суток) и так
далее.
<time>
<day>
: полное
указание даты. Опция <time>
(время) является обязательной. Ее формат
для at довольно свободный: вы,
например, можете ввести 0100
,
04:20
, 2am
,
0530pm
, 1800
или одно из
трех специальных значений: noon
(полдень), teatime
(время
вечернего чая в 16:00) или midnight
(полночь). Опция <day>
(день)
является необязательной. Вы также можете
указать ее различными способами:
например, 12/20/2004
, что
соответствует двадцатому декабря 2004
года, или, по европейскому стандарту,
20.12.2004
. Вы можете не указывать
год, но тогда допускается только
европейская форма записи: 20.12
.
Также вы можете записать месяц буквами: и
Dec 20
, и 20 Dec
будут
верны.
Также at допускает использование разнообразных опций:
Как обычно, для получения дополнительной
информации смотрите страницу
руководства
для at(1).