crontab это команда, которая позволяет вам регулярно выполнять команды через заданные промежутки времени, при этом вам нет необходимости входить в систему, а отчет о выполнении команды будет высылаться к вам на email. Вы можете задавать интервалы в минутах, часах, днях и даже месяцах. В зависимости от заданных опций, crontab может делать разные действия:
Давайте начнем редактировать crontab. Если вы наберете командочку crontab -e, вы очутитесь в своем любимом текстовом редакторе. В случае, если вы не изменяли переменных окружения EDITOR или VISUAL, то это будет Vi. Файл crontab состоит из строк, каждая из которых имеет шесть полей. Первые пять полей определяют временной интервал в минутах, часах, днях, месяцах и днях недели. Шестое поле - это команда для выполнения. Строки, начинающиеся с # - это комментарии и они будут проигнорированы crond (это программа, которая отвечает за выполнение заданий, содержащихся в файле crontab). Приведем пример файла crontab:
Для того, чтобы привести этот пример удобочитаемым шрифтом, мы были вынуждены сделать разрывы длинных строк. Поэтому, если в примере строка заканчивается символом \, это значит, что следующая строка является продолжением текущей. Это соглашение действительно для файлов Makefile, в командах и скриптах shell, а также в любых других местах, где это следует из контекста.
# Если вы не желаете, чтобы вам отсылалась почта, # просто раскомментируйте следующую строку # MAILTO="" # # Каждые 2 дня в 14:00 выполнять # пример, приведенный выше. После этого # cделать временную метку (файл "stamp") # с помощью "retouch" # Символ "%" рассматривается как новая строка # что дает вам возможность помещать несколько # команд в одной строке # 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 * ogg123 $HOME/sounds/merryxmas.ogg # # Каждый вторник печатать список покупок 0 17 * * 2 lpr $HOME/shopping-list.txt |
Существует еще несколько способов задания интервалов, отличных от приведенного примера. Например, вы можете задавать дискретные значения, разделяя их запятыми (1,14,23) или диапазон (1-15), или комбинировать оба способа (1-10,12-20), или даже с произвольным шагом (1-12,20-27/2). Теперь ваша задача найти полезные команды и поместить их сюда!