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