Наверняка вы хоть раз обнаруживали, что выполняете похожие задания в течение дня и хотели, чтобы существовала программа, позволяющая автоматизировать это. Подобная программа уже есть. Это Cron.
Cron — это программа, выполняющая задания по расписанию, если быть более точным, она известна как демон. Демон — это сервисная программа, которая исполняется в фоне, ожидая инструкций. Когда она получает их, она исполняет их и, закончив, опять переходит в спящее состояние. Cron обычно запускается, когда происходит переключение на один из уровней запуска (runlevel). Чтобы убедиться, что он запущен, дайте следующую команду: ps ax | grep crond Если вы получите ответ похожий на это: root 311 0.0 0.7 1284 112? S Dec24 0:00 crond root 8606 4.0 2.6 1148 388 tty2 S 12:47 0:00 grep crond то Cron уже запущен и вы готовы использовать его. Если вы не получили сообщение о "crond", тогда вы должны запустить этот демон, введя crond Cron особенно полезен, когда вам нужно запускать программы резервного копирования и/или сервисные программы, присматривающие за системой. Чтобы сказать cron, когда запускать программу, вы должны заполнить несколько полей. Каждая отдельная программа, которая отмечена в расписании cron, помещается в файл crontab. Поля определены следующим образом: Min Hour DOM Month DOW User Cmd Описание их значений просуммированно следующим образом: Min — указывает минуты запуска скрипта; значение: от 0 до 59. Hour — указывает час, в который должен запускаться скрипт; значения от 0 до 23, где 0 это полночь. DOM — день месяца, в который вы хотите выполнять команду, т.е. чтобы запускать команду 23 числа каждого месяца, DOM должен быть равен 23. Month — месяц, в который необходимо запускать скрипт; значения лежат в пределах от 1 до 12, где "1" это Январь и "12" Декабрь, или же можно указать первые три буквы месяца. DOW — день недели, или как цифровое значение от 0 до 7 (0 и 7 означают Воскресенье) или как и название месяца, используя первые три буквы. User — кто исполняет программу. Cmd — путь и имя исполняемого(ой) скрипта/программы. Вы можете использовать "*" (без кавычек) в любом поле, обозначающем время, обозначая таким образом "каждую минуту", "каждый час" и т.д. Итак, помня приведенное выше описание, вот несколько правильных примеров: # Эта команда запускается по прошествии 1й минуты каждого часа 01 * * * * root /usr/bin/script # Эта команда запускается каждый день в 8:17 утра 17 8 * * * root /bin/mail # Эта команда запускается каждый день в 8:17 вечера 17 20 * * * root /usr/bin/fetch # Эта команда запускается в 4 утра каждое Воскресенье 00 4 * * 0 root /bin/qweb # Эта команда запускается в 4:42 утра каждое первое число 42 4 1 * * root /usr/bin/squidlog # Эта команда запускается каждый час 19го июля 01 * 19 07 * root /usr/bin/xman Возможны и более изощренные методы указания времени: запустите "man 5 crontab", если хотите узнать о них. Наиболее часто устанавливаемая на Линукс-системы версия cron — это vixie-cron, и поэтому в директории /etc/ должен быть файл crontab. Откройте его, используя выбранный вами текстовый редактор, и вы должны найти что-то вроде этого: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root@grangedairy.linux HOME=/
# run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly Здесь: переменная SHELL указывает используемый командный интерпретатор, PATH указывает путь к большинству используемых программ, опция MAILTO — кому будет отослан вывод cron о результатах выполнения (если вас это раздражает, то вы можете удалить эту переменную), cекция после #runparts предназначена для того, чтобы все скрипты, например в директории /etc/cron.daily, исполнялись каждый день. Итак, чтобы добавить приведенные выше примеры в ваш crontab, вам нужно всего лишь вставить их в этот файл. Затем сохраните файл. Последнее, что нам нужно сделать, это указать cron, что мы редактировали файл. Это делается при помощи следующей команды: crontab -u root /etc/crontab Cron также имеет способность разрешать и запрещать конкретным пользователям свое использование. Чтобы добиться этого, нужно создать два файла с именами cron.allow и cron.deny в директории /etc. Эти файлы работают так: если вы, например, хотите, чтобы никто не имел доступа к cron, то вы должны добавить строчку "ALL" в файл cron.deny; если вы хотите, чтобы только определенные люди использовали cron, то вы должны добавить их имена в cron.allow. Вместо того, чтобы редактировать файл каждый раз, более простым способом будет использовать следующую команду: cat username >>/etc/cron.allow Вот и все! |