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" -без комментариев :),
поздравит с новым годом
![[Note]](http://lafox.net/docs/Command-Line-ru/images/note.png)
Комментариев нет:
Отправить комментарий