#(davecron installed on Tue May 4 13:07:43 1999)
#вывод текущей даты на экран
#каждые 15 минут между 18:00 и 6:00
0,15,30,45 18-06 * * * /bin/echo "date" > /dev/console
#удаление файлов дампа в 3.30 утра в 1–й, 7–й, 14–й,
#21–й и 26–й день каждого месяца
30 3 1,7,14,21,26 * * /bin/find -name "core" — exec rm {} \;
Для удаления своего crontab–файла введите команду $ crontab -r
Если crontab–файл случайно удален, инсталлируйте заново исходный файл из вашего начального каталога:
$ crontab <имя_файла>
Именно по этой причине в документации к программе cron говорится о том, что не рекомендуется прибегать к непосредственному редактированию crontab–файла. Следует вносить все изменения в копию файла и инсталлировать ее заново.
3.2. Команда at
Команда at позволяет передавать задания демону cron для одноразового выполнения в назначенное время. Выдавая задание, команда at сохраняет в отдельном файле как его текст, так и все текущие переменные среды. Заметим, что команда crontab не делает этого. По умолчанию все результаты выполнения задания направляются пользователю в виде электронного сообщения.
Как и в случае с программой cron, пользователь root может контролировать, кому разрешено или запрещено выполнять команду at. Соответствующие списки пользователей содержатся в файлах at.allow и at.deny, находящихся в каталоге /etc.
Базовый формат команды at таков:
at [-f файл] [-l -d -m] время
Опция | Назначение |
-f файл | Список заданий должен быть взят из указанного файла |
-l | Вывод на экран списка заданий, которые ожидают выполнения; аналогична команде atq |
-d | Удаление задания с указанным номером; аналогична команде atrm (в некоторых системах заменяется опцией -r) |
-m | Выдача пользователю электронного сообщения о завершении задания |
время | Спецификация времени, когда будет выполнено задание. Эта спецификация может быть довольно сложной. Допускается указание не только времени в формате часы: минуты, но и даты, а также многочисленных ключевых слов, таких как названия дней недели, месяцы, наречий today (сегодня), tomorrow (завтра), now (сейчас) и др. Наиболее удобна запись вида now + 3 hours (через три часа). |
Текст задания можно передать команде at двумя способами: в файле или в режиме командной строки at. Если задание состоит из одной команды или двух — трех команд, объединенных каналом, то удобнее воспользоваться вторым способом. Для запуска сценариев интерпретатора shell предпочтительнее первый вариант.
В случае необходимости выполнить одиночную команду вызовите команду at, указав требуемое время. Отобразится приглашение at>. Введите свою команду, а затем нажмите [Enter] и [Ctrl+D]. Рассмотрим пример.
$ at 21:10
at> find / -name "passwd" — print
at>
warning: commands will be executed using /bin/sh job 1 at 1999-05-05 21:10
Запись <ЕОТ> появляется после нажатия [Ctrl+D]. Теперь в 21:10 будет выполнена команда find, ищущая в системе файлы с именем passwd. Обратите внимание на то, что команда at присваивает заданию уникальный идентификатор 1. Результаты выполнения команды find будут направлены вам по электронной почте. Вот фрагмент соответствующего электронного сообщения:
Subject: Output from your job 1
/etc/passwd
/etс/pam.d/passwd
/etc/uucp/passwd
/tmp/passwd
/root/passwd
/usr/bin/passwd
/usr/doc/uucp-1.06.1/sample/passwd
Ниже приведены примеры корректного указания времени при вызове команды at:
at 6.45am May 12 — 12–го мая в 6:45 утра
at 11.10pm — в 23:10 (сегодня или завтра, если