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).