Дополнительные переменные cron. Что это такое Cron? Crontab каждые 5 минут как поставить

Cron применяют для автоматизации выполнения поставленных задач на сервере. Он работает на Linux и отлично подходит для того, чтобы запустить программу или скрипт на определенное время и с определенной периодичностью, запланировав это действие заранее.

Настройка планировщика заданий Cron

Необходимые к выполнению задания записываются в виде строк, в которых необходимо указать период включения и команду, указывающую, что именно необходимо запустить. Для каждого задания отводится отдельная строка. Например:

30 3 * * 2 /yourdirectory/myscript.pl

На более понятном простому пользователю языке тут обозначены: Минуты/Часы/ДеньМесяца/ДеньНедели/Команда. Данный пример означает, что в 3:30 ночи, каждый вторник, Сron должен запускать файл с названием youdirectory/myscript.pl.

Если перечислить значения через запятую, например в пункте «День» написать 2,4,6, то файл будет запускаться в указанное время каждый вторник, четверг и субботу.

Если задать значения через дефис, то задача будет исполняться в указанном интервале времени. Например, если в пункте «Часы» задать 3-7, то файл будет запускаться каждый час с 3 до 7 утра.

Также можно задать периодичность, написав в графе времени, например, в «Часы» /12. Тогда задача будет исполняться каждые 12 часов.

Важно знать, что «*» означает не отсутствие значения, а все возможные значения. То есть, если задать * * * * 1 /yourdirectory/myscript.pl, желая, чтобы файл запускался каждый понедельник, то это окажется совершенно неверным и файл будет запускаться каждую минуту.

Еще одна важная особенность – это необходимость указания абсолютного пути к файлу. А также файлу необходимо иметь такие права доступа, чтобы он хотя бы мог запускаться.

Из представленных примеров становится понятно, что данный планировщик задач в Linux является очень удобным инструментом, поэтому предлагаем вам более подробно ознакомиться с некоторыми его особенностями.

Наиболее простым и распространенным методом работы с Cron является панель администрирования хостинга. Однако, у различных панелей конфигурация Cron происходит по-разному.

Иногда случается, что хостинг не предоставляет возможности работы с Cron через панель администрирования. В такой ситуации используют SSH-протокол. С помощью него подключаются серверу, используя программу PuTTY, и вводят задачи в командной строке.

Для начала работы следует ввести команду:

Crontab –e

Далее вы попадете в vi – текстовый редактор, однако, эти редакторы могут быть разными у разных хостингов. Если вы не знакомы с работой в vi, то вы можете ввести команду: EDITOR=ee crontab –e, которая перенаправит вас в более простой и понятный редактор.

В случае, когда хостинг не осуществляет поддержку открывшегося редактора, придется разобраться с работой vi:

  • для ввода текста необходимо перейти в одноименный режим, нажав кнопку «i»;
  • для выхода из режима воспользуйтесь кнопкой «Esc»;
  • для удаления символа в режиме ввода текста воспользуйтесь клавишами «Esc», а затем «x»;
  • сохранения и выхода из файла нажмите «:wq»;
  • в обязательном порядке нажимайте клавишу «Enter» в конце каждой строчки, это необходимо для работы Cron;
  • для просмотра уже имеющихся задач в Cron введите команду crontrab-l.

Примеры задач для Cron в linux

— Исполнять задание каждые 6 часов в 30 минут каждого дня каждого месяца:

30 */6 * * * /yourdirectory/myscript.pl

— Исполнять задание после каждой перезагрузки:

@reboot /yourdirectory/myscript.pl

— Исполнять задание 15 числа каждого месяца в 00 часов 00 минут:

0 0 15 * * /yourdirectory/myscript.pl

PHP-файлы

Чтобы запустить PHP-скрипты, обычно используют интерпретатор. Универсальной инструкции по его работе нет, так как разные хостинги используют разнообразный софт. В следствие этого часто прибегают к помощи WGET для запуска PHP в Cron. Вводим следующую запись:

1 2 * * 3 root wget -O - -q -t 1 http://mysite.com/file.php

Разберем более подробно:

  • «-O-» — не дает Cron создавать дополнительные файлы, тем самым, избавляя сервер от лишнего хлама, так как работа происходит в консоли;
  • «q» — операции больше не выводятся на экран;
  • «t-1» — разрешение лишь одной попытки соединения.

Ограничения Cron

У самого Cron имеется всего одно ограничение – период исполнения задач. Если вы перегружаете сервер своего хостинга, он может поставить запрет на запуск Cron чаще, чем раз в несколько минут или час. Кроме этого Cron ограничен только ресурсами сервера, такими как: оперативная память, объемы данных, время выполнения команд и т.д.

Если сервер перезагрузится, то Cron сохранит все ваши задачи, перезагрузившись вместе с ним.

Отчет

У Cron существует настройка, чтобы настроить уведомления о его работе на электронную почту. Это особенно полезно, если при работе случится какая-либо ошибка. Чтобы включить такие уведомления на почту, необходимо в crontab вписать строчку:

MAILTO= [email protected]

После MAILTO= указывается необходимая почта. Указать их можно сразу несколько, перечислив через запятую. Теперь, если вдруг случится ошибка, вы будете проинформированы об этом. При чем, к вам на почту будут приходить и результаты работы скриптов. Однако, если данная функция вам мешает, ее можно и отключить, введя в конце задачи команду > /dev/null 2>&1.

MIN HOUR DOM MON DOW CMD

Таблица: Поля и допустимые диапазоны Crontab (синтаксис Linux Crontab)

1. Планирование задач в течение определённого времени

Основа использования cron – выполнение задач в определённое время, как показано ниже. Это будет выполнять скрипт полного резервного копирования (full-backup) 10 июня в 8.30.

Пожалуйста, обратите внимание, что поле времени использует 24-часовой формат, Так что 8 АМ – 8, 8 РМ – 20 часов.

30 08 10 06 * /home/developer/full-backup

  • 30 – 30-ая минута
  • 08 – 08 АМ
  • 10 – 10-й день
  • * – каждый день недели

2. Расписание задач для более частого выполнения (например, дважды в день)

Следующий скрипт использует дополнительное резервное копирование дважды в день каждый день. В этом примере выполняется дополнительное резервное копирование (incremental-backup) в 11:00 и в 16:00 каждый день. Значения через запятую в поле указывают, что команда должна быть выполнена в каждое указанное время.

00 11,16 * * * /home/developer/bin/incremental-backup

00 – 0-ая минута (начало часа) 11, 16 – 11 и 16 часов * - каждый день * - каждый месяц * - каждый день недели

3. Расписание работы в течение определённого интервала времени (например, только в будние дни)

Если вы хотите, чтобы подпрограммы выполнялись в течение каждого часа с определённым интервалом времени, используйте следующее.

Подпрограмма Cron для каждого дня в течение рабочих часов

Этот пример каждый день проверяет состояние базы данных (включая выходные) в течение рабочих часов с 9 утра до 6 вечера.

00 09-18 * * * /home/developer/bin/check-db-status

00 - 0-ая минута (начало часа) 09-18 – 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (часы) * - каждый день * - каждый месяц * - каждый день недели

Подпрограмма Cron для каждого рабочего дня в течение рабочих часов

Этот пример проверяет состояние базы данных каждый рабочий день (кроме субботы и воскресенья) с 9 утра до 6 вечера.

00 09-18 * * 1-5 /home/ramesh/bin/check-db-status

00 - 0-ая минута (начало часа) 09-18 – 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (часы) * - каждый день * - каждый месяц 1-5 - Понедельник, Вторник, Среда, Четверг и Пятница (каждую неделю)

4. Как просмотреть записи Crontab?

Просмотр текущих Crontab-файлов пользователя.

Чтобы просмотреть ваши файлы crontab-l из вышей учётной записи unix, проделайте следующее.

Developer@dev-db$ crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Просмотр root записей crontab

Залогиньтесь в качестве root пользователя (su - root) и выполните crontab-l как показано ниже.

Root@dev-db# crontab -l no crontab for root

Чтобы посмотреть файлы других пользователей, залогиньтесь в качестве root пользователя и и используйте -u { имя пользователя} -l как показано ниже.

Root@dev-db# crontab -u username -l @monthly /home/username/monthly-backup 00 09-18 * * * /home/username/check-db-status

5. Как редактировать записи crontab?

Редактирование текущих пользовательских cron-записей.

Чтобы редактировать записи, используйте cronab -e как показано ниже. По умолчанию, будут редактироваться текущие записи crontab пользователя.

Developer@dev-db$ crontab -e @yearly /home/developer/centos/bin/annual-maintenance */10 * * * * /home/developer/debian/bin/check-disk-space ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C

Когда вы сохраните файл, он сохранит crontab и покажет следующее сообщение, где будет сказано, что crontab успешно изменён.

~ "crontab.XXXXyjWkHw" 2L, 83C written crontab: installing new crontab

Редактирование root записей crontab

Залогиньтесь как root пользователь (su - root) и сделайте crontab -e , как показано ниже.

Root@dev-db# crontab -e

Редактирование записей crontab-файла другого пользователя

Чтобы отредактировать запись crontab другого пользователя Linux, залогиньтесь в под root и используйте -u { имя пользователя} –е, как показано ниже.

Root@dev-db# crontab -u username -e @monthly /home/username/fedora/bin/monthly-backup 00 09-18 * * * /home/username/ubuntu/bin/check-db-status ~ ~ ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C

6. Выполнение Cron каждую минуту

В идеале, вам может и не потребоваться назначения выполнения cron каждую минуту. Но понимание этого примера поможет вам понять другие примеры, описанные в этой статье.

Bash * * * * * CMD

* - означает возможную единицу – то есть, каждую минуту каждого часа в течение года. Кроме того, использование * напрямую, окажется более полезной функцией в следующих примерах.

Указание */5 в поле минут означает каждые 5 минут. Указание 0-10/2 в поле минут означает каждые 2 минуты в первых 10 минутах. Таким образом, данная условность может быть использована во всех 4 полях.

7. Запуск фоновых задач Cron каждые 10 минут

Используйте следующее, если хотите проверять место на диске каждые 10 минут.

*/10 * * * * /home/ramesh/check-disk-space

Эта задача выполняет указанную команду проверки диска каждые 10 минут на протяжении года. Но вам может потребоваться выполнение проверки только в рабочие часы или наоборот. Приведённые выше примеры показывают, как это сделать.

Вместо указания значений в 5 полях мы можем указать их, используя ключевое слово, как показано ниже.

Существуют особые условия, когда вместо 5 полей вы можете использовать @ и далее ключевое слово – такие как перезагрузка, полночь, ежегодно, ежечасно.

Специальные ключевые слова Cron и их значение

8. Расписание работы для первой минуты каждого года с использованием @yearly

Если вы хотите, чтобы cron задача выполнялись в первые минуты каждого года, то можете использовать ключевое слово @yearly , как это показано ниже. В стаком случае система будет выполнять ежегодное техническое обслуживание, используя скрипт ежегодного тех.обслуживания в 00:00 1 января каждого года.

@yearly /home/developer/red-hat/bin/annual-maintenance

9. Запуск задач каждый месяц с использованием ключевого слова @monthly

Оно схоже со словом @yearly , приведённым выше. Но команда выполняется ежемесячно. Команда будет выполнять резервное копирование в 00:00 первого числа каждого месяца.

@monthly /home/ramesh/suse/bin/tape-backup

10. Запуск задач каждый день с использованием @daily

Используя ключевое слово @daily , будет ежедневно создаваться лог-файл очистки журнала в 00:00 каждый день.

@daily /home/developer/arch-linux/bin/cleanup-logs "day started"

11. Как выполнить команду Linux после каждой перезагрузки, используя @reboot?

Используя ключевое слово @reboot , будет выполняться указанная команда каждый раз после загрузки системы.

@reboot CMD

13. 12. Как отключить/перенаправить исходящую почту Crontab, используя ключевое слово MAIL?

По умолчанию crontab отправляет выходные (output) задачи пользователю, который установил эту задачу. Если вы хотите перенаправить их другому пользователю, добавьте или обновите переменную MAIL в crontab, как показано ниже.

Developer@dev-db$ crontab -l MAIL="developer" @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Если вы хотите, чтобы почта вообще не отправлялась, т.е прекратить отправку выходных файлов crontab, добавьте или обновите переменную MAIL в crontab, как показано ниже.

13. Как выполнять задачи Linux Cron кажду секунду, используя Crontab

Вы не можете настроить выполнение cron на каждую секунду. Потому что минимальная единица выполнения cron – минута. В обычном сценарии нет необходимости запускать выполнение cron каждую секунду.

14. Указание переменной PATH в Crontab

Во всех вышеприведённых примерах мы указывали абсолютный путь команды Linux или скрипта оболочки, которые должны быть выполнены.

Например, вместо указания /home/developer/tape-backup , если вы хотите указать только tape-backup , добавьте путь /home/developer к переменной PATH в crontab , как показано ниже.

Developer@dev-db$ crontab -l PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/developer @yearly annual-maintenance */10 * * * * check-disk-space

15. Установка Crontab из Cron-файла

Вместо прямого редактирования файла crontab вы можете добавить, все записи в cron-файл. Если в файле есть эти записи, вы можете выгрузить или установить их в cron, как показано ниже.

Примечание: Будет создан файл cron-file.txt в вашем crontab, который удалит прежние записи cron. Поэтому, пожалуйста, будьте внимательны при загрузке записей cron из cron-file.txt:

developer@dev-db$ crontab -l no crontab for developer $ cat cron-file.txt @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space developer@dev-db$ crontab cron-file.txt developer@dev-db$ crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Я многое слышал о том, что в linux есть удобный планировщик задач cron. Однако, у меня не было необходимости им пользоваться, и разбираться в его настройки не хотелось… консоль, много английских букавок… было страшно. Но, благо, мои опасения были напрасны — всё до элементарного просто. В статье будет рассмотрено, как настроить выполнение своих скриптов по расписанию, и в качестве примера установим «кукушку».

Для начало немного о том, как это вообще работает.

При запуски системы стартует демон cron. Им можно управлять (останавливать/запускать/узнавать статус) командой: sudo service cron (stop/start/status). Но это редко, когда бывает нужно.

Сам демон cron большую часть времени спит, и слегка приоткрывает глаз раз в минуту, что бы проверить наличие заданий на это время. Если задания отсутствуют, то он опять уходит в спячку.

Задания находятся в файлах имена которые равны именам пользователя, а сами файлы лежат в папке /var/spool/cron/crontabs. Папка защищена от постороннего вмешательства и доступна только суперпользователю. Но, каждый пользователь может настроить расписание для своих задач, не зная пароля от рута (суперпользователя).

Что бы настроить cron для обычного пользователя достаточно набрать:

Если нужно создать задачу для другого пользователя, то запуск производится командой:

sudo crontab -u user -e

Заместо юзера пишем нужного пользователя, например root.
При первом запуске будет вопрос о редакторе… мне нравится nano. Он простой и запускается без графического интерфейса.


Синтаксис для задач очень прост. Рассмотрим пример со скриншота по запуску кукушки:

0 */1 * * * /home/zegi/bin/kuku

Всего в задаче 2 основных поля: 0 */1 * * * — обозначает время, когда будет срабатывать команда. А /home/zegi/bin/kuku — путь к скрипту в котором описана команда(ы).

С адресом к скрипту не должно быть проблем (zegi — это имя пользователя… не забудьте поставить своё). Но нужно пояснить, как задать крону время для выполнения скрипта.

Всего у нас 5 ячеек для ввода, которые разделяются пробелом.
1 — минуты (числа от 0 до 59)
2 — часы (от 0 до 23)
3 — день месяца (от 1 до 31)
4 — месяц в году (от 1 до 12… например февраль это 2)
5 — день в недели (от 1 до 7. Используется западная неделя, когда началом является воскресенье. т.е. ВС-1, ПН-2, ВТ-3, СР-4, ЧТ-5, ПТ-6, СБ-7).

Каждая ячейка обязательна должна быть заполнена. Если нужно, что бы команда выполнялась каждый месяц, то ставим * в 4-ом поле. Тоже самое относится и к остальным полям.

Вернёмся к примеру с кукушкой, когда скрипт срабатывает каждый час. Что бы задать периодичность используется / . Например если нужно, что бы задача выполнялась каждых 5 минут, по понедельникам то ставим:

Если нужно, что бы задача выполнялась каждый час, то придётся устанавливать и определённую минуту. Если оставить звёздочку(* */1 * * *), то крон будет выполнять каждую минуту — ибо условия соблюдены: он проверил все 5 ячеек и их значение соотвтествует текущему времени (минуты — всё равно. Часы — каждый час, а не только определённые).
Перед слешем всегда должна идти звёздочка. Например, назначить выполнение каждую минуту, начиная с 30-ой, вписав 30/1 — не получится.

Если нужно, что бы задача выполнялась не циклично, но несколько раз, то значения пишутся через запятую.
Например нужно выполнить задачу по будням в 12 часов дня и 6 вечера. То это будет выглядеть так:

* 12,18 * * 2,3,4,5,6

По окончанию редактирования задач, не забудьте сохранить изменения (Ctrl+O > энтер), а затем можно выйти (Ctrl+x).

Cron должен оповестить, что появилась новая задача и он готов её выполнять, написав: «crontab: installing new crontab».

Посмотреть созданные задачи (может быть вы ничего и не делали для себя, а администратор сети, что нибудь вам настроил) можно командой:

И в конце сам скрипт кукушки , который кукукает каждый час:

#!/bin/bash
h=`date +%l`
while [ $h -gt 0 ]
do
play ~/kukushka.wav
h=$[$h-1]
done

Скачать звук с кукушкой можно командой:

wget http://dl.dropbox.com/u/24844052/tuksik/kukushka.wav

Play входит в пакет sox. В ubuntu его можно установить командой.

Предположим нам нужно запускать определенную задачу каждый день, или, может, каждую субботу в 12 ночи? В Unix-подобных системах существует возможность автоматизировать запуск повторяющихся задач при помощи демона планировщика задач cron. В данной статье будут рассмотрены основы работы с ним.

Все описанное в данной статье тестируется в ОС Linux Debian 6.0 squeeze, однако в большинстве случаев будет работать на других Unix-подобных операционных системах.

Основные команды

Для управления планировщиком задач используется команда crontab со следующими ключами:

U пользователь - определяет пользователя чьи задачи будут просматриваться/редактироваться, отсутствие данного параметра устанавливает текущего пользователя;
-l - показывает список текущих задач;
-e - запускает редактор планировщика задач;
-r - удаляет все текущие задачи.

Таким образом для назначения определенной задачи нужно выполнить команду crontab -e и построчно написать список необходимых задач на основе синтаксиса cron.

Синтаксис cron

В общем виде задача крон представляет собой строку вида:

* * * * * команда

Каждой звездочке в строке соответствует определенное значение:

0 и 7 в дне недели обозначает воскресенье, поскольку в некоторых странах день недели начинается с воскресенья. Соответственно 1 - понедельник, 6 - суббота. В файле crontab помимо перечисленных выше допустимы следующие основные символы:

# - комментарий (строки начинающиеся с данного символа не выполняются);
, - перечисление значений (1,2,3,4);
/ - каждые n раз (*/n - каждые n, */5 - каждые 5, */2 - каждые 2);
- - интервал значений (1-5 - с 1 до 5, 4-6 - с 4 до 6).

Из вышеперечисленного следует, что следующие записи соответствуют следующим строкам:

0 5 * * * - каждый день в 5:00;
*/10 * * * * - каждые 10 минут;
0 0 1 1 * - 1 января каждого года;
0 9 * * 1,3,5 - понедельник, среду и пятницу в 9 утра;
0 0 1 * * - каждое 1-е число месяца.

Так же в файле crontab можно записывать следующие предопределенные значения:

@reboot - при загрузке операционной системы;
@yearly - каждый год в полночь 1-го января;
@monthly - каждый месяц в полночь 1-го числа;
@weekly - в полночь каждый понедельник;
@daily - ежедневно в 0:00;
@hourly - в начале каждого часа.

Пример файла crontab

Лучше всего понять синтаксис файла crontab можно на следующем примере: crontab -e -u user

#Привет, я файл crontab пользователя user, и вот чему научил меня мой хозяин
#Я здороваюсь с ним после своей загрузки
@reboot echo "Привет, Хозяин!"

#Каждый рабочий день в 6:45 я запускаю для него скрипт,
#который включает будильник
45 6 * * 1-5 /home/user/beep.sh

#Пока хозяин добирается до работы или высыпается в выходной день,
#я присылаю для него свежие новости (каждый день в 8 утра)
0 8 * * * /home/user/newsmail.sh

#Я зову хозяина домой в конце рабочего дня
0 18 * * 1-5 echo "Приезжай домой, Хозяин" | mail -s "Конец рабочего дня" user

#И я поздравляю его
@yearly echo "С Новым годом"

В наших материалах посвященных Ubuntu Server время от времени затрагивается вопрос выполнения каких либо задач по расписанию. Чтобы не объяснять каждый раз одно и тоже мы решили создать данный материал, который должен помочь системным администраторам освоить и эффективно использовать планировщик задач в Linux.

В Ubuntu Server в качестве планировщика задач используется cron - планировщик с интерфейсом командной строки. Он является важной частью системы и начинает функционировать сразу после установки, исполняя различные системные задачи. Наша цель - поставить его себе на службу, тем более это не так сложно как кажется.

Предусмотрено два типа расписаний cron : пользовательское и системное. Отличаются они тем, что первое создается пользователями и исполняется с учетом пользовательских прав, второе используется в административных или системных целях и может быть запущено от имени любого пользователя.

Чтобы создать или изменить пользовательское расписание наберите команду:

Crontab -e

При первом запуске утилита предложит выбрать редактор, мы рекомендуем выбирать mcedit (требует установленного mc), либо другой редактор, с которым вы умеете работать.

Формат строк расписания имеет вид:

Минута час день месяц день_недели команда

  • Минута - время в минутах от 0 до 59
  • Час - от 0 до 23
  • День - день месяца от 1 до 31
  • Месяц - от 1 до 12 либо буквенные обозначения jan - dec
  • День недели - от 0 до 6 (0 - воскресенье) или sat - sun
  • Команда - строка в формате командного интерпретатора которая будет исполнена, допускается запись типа команда1 && команда2 для запуска нескольких команд подряд.

Значения минут, часов, дней можно указывать следующим образом:

  • Значение - число обозначающее дату или время, допускается подстановочный знак * допускающий полный диапазон значений
  • Несколько значений - допускается указывать несколько значений через запятую, например 2,14,22
  • Диапазон значений - указывается через дефис, например 2-10
  • Шаг значений - указывается через дробь, в знаменатель которой ставится шаг, например */3 - каждое третье значение 0, 3, 6, 9 и т.д. В качестве числителя должен быть диапазон значений либо звездочка.

Рассмотрим следующий пример записи:

0 8-19/2 * * 1 /home/ivanov/test

Она означает что каждый второй час с 8 до 19 (8, 10,12,14,16) по понедельникам запускать скрипт test в домашнем каталоге Иванова.

Сразу хотим предостеречь вас от распространенной ошибки, при указании периодического исполнения все даты должны быть указаны явно, звездочка обозначает полный диапазон значений, а не их отсутствие. Например если вам требуется исполнять некий скрипт каждый час с 10 до 15 неправильно будет:

* 10-15 * * * /home/ivanov/test

Данная строка приведет к запуску скрипта каждую минуту в диапазоне с 10 до 15 часов. Правильно будет:

0 10-15 * * * /home/ivanov/test

Данная запись позволит запускать скрипт в начале каждого часа указанного диапазона.

Кроме даты можно использовать ряд специальных строк:

  • @reboot - выполнять команду при перезагрузке
  • @yearly или @annually - выполнять 1 января, аналогично записи: "0 0 1 1 * "
  • @monthly - выполнять 1 числа каждого месяца, аналогично "0 0 1 * * "
  • @weekly - выполнять каждое воскресенье, равносильно "0 0 * * 0 "
  • @daily или @midnight - ежедневно в полночь,"0 0 * * * "
  • @hourly - раз в час, "0 * * * * "

Так для ежедневного исполнения нашего скрипта каждую полночь можно написать:

@midnight /home/ivanov/test

Завершив составление расписания сохраняем файл и выходим из редактора. Пользовательское расписание будет сохранено в /var/spool/cron/crontabs под именем текущего пользователя.

Для системных и административных задач предусмотрен файл /etc/crontab синтаксис записей в нем отличается наличием дополнительного значения - пользователя, от чьего имени будет запущено задание:

Минута час день месяц день_недели пользователь команда

Пример такой записи:

0 19 * * 1-5 root /etc/backup

Согласно которой в 19:00 с понедельника по пятницу будет запускаться скрипт /etc/backup от имени пользователя root .

Данный файл также содержит системные расписания, поэтому к его редактированию следует подходить с осторожностью. Все системные и административные задания следует размещать именно в нем.

Как видим cron достаточно прост в использовании, но в тоже время предоставляет богатые возможности по настройке расписаний в Ubuntu Server. Надеемся данная статья поможет администраторам освоить данный инструмент.