crontab - это команда, которая позволяет вам периодически выполнять команды через определенные промежутки времени с тем преимуществом, что вам нет необходимости входить в систему. crontab отправит вам письмо с отчетом о выполнении вашей команды. Вы можете указывать интервалы в минутах, часах, днях и даже месяцах. В зависимости от указанных опций, crontab будет работать по-разному:
Давайте начнем с редактирования crontab'а. Если вы введёте команду crontab -e, перед вами окажется ваш любимый текстовый редактор, если у вас установлена переменная окружения EDITOR или VISUAL, в противном случае будет использован Vi. Строка в файле crontab состоит из шести полей. Первые пять полей - это интервалы времени в минутах, часах, днях, месяцах и днях недели соответственно. Шестое поле - это выполняемая команда. Строки, начинающиеся с # - это комментарии, они будут проигнорированы демоном crond (программой, отвечающей за выполнение заданий из crontab). Вот пример файла crontab:
Существует еще несколько способов указания интервалов, кроме того, что показан в этом примере. Например, вы можете указать набор дискретных значений, разделённых запятыми (1,14,23) или диапазон (1-15), или даже комбинировать их (1-10,12-20), а можно и с некоторым шагом (1-12,20-27/2). Теперь вашей задачей будет найти полезные команды и поместить их в этот файл!
Общий формат команды:
Давайте начнем с редактирования crontab'а. Если вы введёте команду crontab -e, перед вами окажется ваш любимый текстовый редактор, если у вас установлена переменная окружения EDITOR или VISUAL, в противном случае будет использован Vi. Строка в файле crontab состоит из шести полей. Первые пять полей - это интервалы времени в минутах, часах, днях, месяцах и днях недели соответственно. Шестое поле - это выполняемая команда. Строки, начинающиеся с # - это комментарии, они будут проигнорированы демоном crond (программой, отвечающей за выполнение заданий из crontab). Вот пример файла crontab:
# Если вы не хотите получать почту, просто # закомментируйте следующую строку #MAILTO="ваш_адрес_email" # # Уведомление о новых изображениях каждые 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 |
Формат и значения полей
Каждая команда в пользовательском файле crontab занимает одну строку и состоит из шести полей. Пользовательские файлы crontab находятся в каталоге /var/spool/cronОбщий формат команды:
------------------------------------------------ минута час день_месяца месяц день_недели команда ------------------------------------------------ Допустимые значения: минута от 0 до 59 час от 0 до 23 день_месяца от 1 до 31 месяц от 1 до 12 (можно три буквы из названия месяца, регистр не имеет значения от jan до dec) день_недели от 0 до 6 (0 это воскресенье, можно писать от sun до sat)Каждое из полей даты и времени может быть обозначено символом * ,будет соответствовать любому возможному значению. Для этих полей можно указывать диапазоны значений, разделенных дефисом, например:
* 5 4-10 0-3 * echo "HELLO" -печать HELLO в 5:00 на 4,5,6,7,8,9,10 дни января, февраля, марта и апреляпошаговая запись
* */2 * * sat echo "HELLO" -печать HELLO каждый четный час, каждую субботуравнозначная предыдущему примеру запись (списком)
* 0,2,4,6,8,10,12,14,16,18,20,22 * * sat echo "HELLO" -печать HELLO каждый четный час, каждую субботуто же самое с указанием диапазона
* 0-23/2 * * sat echo "HELLO" -печать HELLO каждый четный час, каждую субботу 59 23 31 dec * echo "Happy new year" -без комментариев :), поздравит с новым годом
Комментариев нет:
Отправить комментарий