Версия: Solaris 2.5.1 от 1 февраля 1995
crontab [файл]
crontab [-elr] [пользователь]
Команда crontab обеспечивает для пользователя доступ к услугам демона cron путем копирования, создания, распечатки и удаления crontab-файлов (т. е. файлов, содержащих задания для демона cron). При вызове без ключей crontab копирует указанный в командной строке файл (или стандартный ввод, если файл не указан) в специальный каталог /var/spool/cron/crontabs, где хранятся задания всех пользователей для демона cron. После этого crontab посылает сигнал демону, чтобы он принял новые задания к исполнению. Пользователь не имеет и не должен иметь непосредственного доступа к crontab-файлам в /var/spool/cron/crontabs; его интерфейс к этим файлам команда crontab.
Пользователю разрешено выполнять команду crontab (т. е. пользоваться услугами демона cron) только при условии, что его имя встречается в файле /etc/cron.d/cron.allow. Если этого файла не существует, то проверяется файл /etc/cron.d/cron.deny для того чтобы узнать, не запрещен ли пользователю доступ к crontab. Если оба файла отсутствуют, то только суперпользователю разрешено пользоваться демоном cron. Если cron.allow не существует, cron.deny существует, но не содержит имен, то использовать команду crontab разрешено всем.
Файлы cron.allow и cron.deny содержат имена пользователей, по одному имени в строке.
Crontab-файл состоит из строк, каждая из которых содержит 6 полей. Эти поля разделены пробелами или символами табуляции. Первые 5 полей представляют собой шаблоны, указывающие время выполнения команды, шаблоны специфицируют следующие целые числа в указанном порядке:
Каждый из этих шаблонов может быть или символом *, который обозначает все корректные значения, или списком, элементы которого разделены запятыми. Каждый элемент должен быть либо числом, либо двумя числами, разделенными символом (таким способом задается интервал). Заметим, что день может быть указан двумя полями (день месяца и день недели). Если в обоих этих полях указаны списки, то считаются заданными те дни, которые заданы или как день месяца, или как день недели. Например, если первые 5 полей содержат "0 0 1,15 * 1", то действие производится 1 и 15 числа каждого месяца и, кроме того, каждый понедельник. Чтобы указывать день каким-либо одним способом, в другом поле необходимо указать * (к примеру, "0 0 * * 1" приводит к выполнению действия только по понедельникам).
Остальная часть строки в файле регулярных действий представляет собой командную строку, которая выполняется командным интерпретатором (shell) в указанное время. Символы процента в этой цепочке (кроме экранированных символом "\") преобразуются в символы перевода строки. При наличии неэкранированного символа (символов) % командной строкой считается часть строки до первого % исключительно. Остальное будет обработано при выполнении команды как стандартный ввод.
Строка, начинающаяся с символа #, является комментарием. Файл не должен содержать пустых строк.
Shell запускается демоном cron из домашнего каталога пользователя, запланировавшего действие, при этом нулевой аргумент командной строки (argc[0], $0) равен "sh". Если пользователь хочет, чтобы выполнялся его профайл, он должен явно указать это в crontab-файле. Cron поддерживает стандартное окружение для каждого запускаемого shellа, определяя переменные HOME, LOGNAME, TZ также, как они определяются при работе пользователя, а также переменные.
Значение пременной PATH, устанавливаемой демоном cron, можно явно указать в /etc/default/cron.
Если стандартный вывод и стандартная ошибка не перенаправлены или не подавлены пользователем, то весь вывод и сообщения об ошибках от команд, запускаемых демоном cron пересылается пользователю по почте.
-e редактирует копию существующего crontab-файла данного пользователя или создает новый файл для редактирования, если crontab-файл данного пользователя не существует. После выхода из текстового редактора созданный/отредактированный файл устанавливается как crontab-файл пользователя вместо старого файла. Если указано имя пользователя, редактируется crontab-файл этого пользователя (доступно только суперпользователю). Переменная окружения EDITOR определяет, какой текстовый редактор вызывается при указании опции -e. По умолчанию вызывается ed.
-l распечатывает в стандартный вывод содержимое crontab-файла данного пользователя.
-r удаляет crontab-файл пользователя из каталога, в котором хранятся задания для cron.
Только суперпользователь может указывать дополнительно к ключам -r или -l имя пользователя для того, чтобы удалять или просматривать crontab-файлы указанного пользователя.
/usr/spool/cron/crontabs Каталог, в котором размещены crontab-файлы пользователей (пользователи НЕ работают непосредственно с файлами этого каталога).
/var/cron/log log-файл выполнения демоном cron заданий всех пользователей (доступен для чтения только суперпольззователю).
/etc/cron.d/cron.allow Список пользователей, которым разрешено выполнять команду crontab.
/etc/cron.d/cron.deny Список пользователей, которым запрещено выполнять команду crontab.
/etc/default/cron Установки для cron: CRONLOG=YES включить регистрацию действий cron в /var/cron/log. PATH= установить переменную PATH для выполнения заданий пользователей.
Если Вы нечаянно ввели команду crontab без аргументов, то не пытайтесь выйти, нажав CTRL+D, так как это опустошит Ваш crontab-файл. Вместо CTRL+D используйте клавишу прерывания (CTRL-C).
Если суперпользователь изменяет crontab-файл другого пользователя, результат может получится непредсказуемым, если суперпользователь не выполнил предварительно команду su для перехода в сеанс нужного пользователя.
Написано на основе документа CitForum, переработанного и дополненного.
http://athena.vvsu.ru/docs/unix/man/crontab.html
18 октября 2006