crontab: проверка и изменение вашего файла crontab

crontab это команда, которая позволяет вам регулярно выполнять команды через заданные промежутки времени, при этом вам нет необходимости входить в систему, а отчет о выполнении команды будет высылаться к вам на email. Вы можете задавать интервалы в минутах, часах, днях и даже месяцах. В зависимости от заданных опций, crontab может делать разные действия:

  • -l: Показать ваш текущий файл crontab.

  • -e: Редактировать ваш файл crontab.

  • -r: Удалить ваш файл crontab.

  • -u <user>: Применить одну из вышеупомянутых опций для пользователя <user>. Это может делать только root .

Давайте начнем редактировать 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). Теперь ваша задача найти полезные команды и поместить их сюда!



Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости