Главная
Трудоустройство
Ваши объявления
Наши новости
Информация







Крон-временщик

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









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

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

Первым делом необходимо посмотреть, установлен ли у вас данный демон. Для этого можно воспользоваться утилитой ntsysv и просмотреть список ваших демонов, если crond присутствует в списке и стоит на автоматическом запуске, значит все нормально. В противном случае вам необходимо будет установить его из rpm файлов, которые поставляются вместе с дистрибутивом.

Демон cron запускается в числе других демонов с помощью /etc/rc.d/init.d/crond или можно запускать его с помощью /etc/rc.d/rc.local. Активация cron происходит ежеминутно. Каждую минуту он считывает crontab файлы (речь о них пойдет немного попозже) и провряет, не наступило ли время для запуска какой-либо запланированной задачи. Исходя из этого правила можно сдлать вывод, что минимальный интервал времени между запуском задач должен составлять 60 секунд.

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

Синтаксис:
crontab [ -u user ] { -l | -r | -e } file
Ключи Описание
-u Данной командой мы задаем пользователя, для которого мы будет создавать данный crontab файл
-l Выводит информацию из вашего crontab-файла на экран
-r Очищает список задач
-e Позволяет редактировать ваш crontab-файл

Давайте попробуем определить наши крон файлы.

Crontab -u root /etc/crontab - данной командой мы присвоили нашему суперпользователю файл /etc/crontab. В нем мы и будем задавать список наших задач.
Создадим какой-то crontab для наших пользователей.
Crontab -u raven /home/raven/raven.cron - создается crontab-файл для пользователя c именем raven

Помимо задач, которые необходимо выполнить crontab файл должен обязательно содержать интерпретатор команд.
Главные записи в сrontab файле:
# Здесь мы выставляем интерпретатор команд
SHELL=/bin/bash
#Выставляем путь к файлам
PATH=/sbin:/bin
# Кому посылать отчет о выполнении команд, в данном случае - root

MAILTO root

# Домашний каталог
HOME=/

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

1. Минуты (0-59)
2. Часы (0-23)
3. День (1-31)
4. Месяц(1-12)
5. День недели
6. Путь к файлу или командная строка, которую необходимо выполнить.

Четыре первых поля могут задаваться с помощью перечисления, например, 1-5, что соответствует набору значений 1,2,3,4,5 или вы можете устанавливать в них символ ?*?, описывающий все допустимые значения.

Итак, разобравшись с синтаксисом написания crontab-задач, можно немного попрактиковаться.

Создадим задачу, которая будет производить индексацию всех существующих файлов в нашей системе. Данная задача очень интересна, так как система Linux содержит в себе сотни тысяч файлов, и порой при поиске определенного файла мы затрачиваем кучу времени на нахождение его месторасположения. Чтобы избежать данного неудобства, необходимо проводить индексацию всех файлов нашей системы(slocate -u). После индексации на поиск любого файла у нас будет уходить 1 или 2 секунды. Данную задачу мы будем запускать ежедневно в 2 часа ночи.

Выполняем следующую команду:
Crontab -u root -e

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

0 2 * * * /usr/bin/./slocate /u - запускается ежедневно в 2 часа утра.


Создадим задачу, которая должна запускаться в конце рабочей недели. Пусть это будет проверка целостночти нашей файловой системы. Делается это следующим образом:

0 23 * * fr fsck -a /dev/hda1 - каждую пятницу в 23 :00 будет происходить проверка целостноcти нашей файловой системы.

Для более качественного использования cron-задач нам понадобятся знания программирования shell-скриптов начального уровня. Поставим себе следующую задачу:

Мы хотим делать копию нашей mysql базы данных ежедневно. Причем имя файла должно быть сегодняшней датой. Базу мы пакуем с помощью архиватора tar и закидываем по сети на компьютер под управлением ОС Windows c помощью samba. Предполагается, что компьютер под управлением Windows работает круглосуточно. Создадим скриптовый файл, который и будет делать все вышеописанные операции.

Содержимое нашего файла (scr):

#! /bin/bash - данной командой мы задаем имя интерпретатора, с помощью которого будет обрабатываться наш shell script

mount -t smbfs //10.0.0.2/Linux /mnt/linux -o rw, username=Администратор
password=*******

Монтируем smb ресурс по адресу 10.0.0.2/Linux в каталог /mnt/linux. При монтировании передаем имя пользователя и пароль, с правами которого будет происходить монтирование ресурса. В данном случае имя пользователя - "Администратор".

Теперь нам необходимо сделать копию нашей базы данных mysql. Для этого воспользуемся стандартной родной утилитой mysqldump, которая находится в папочке bin, каталога mysql.

Выполняем следующую команду:
Mysqldump -h ваш ip -u имя пользователя --password=его пароль имя базы > /data.sql

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

source="/data2.sql"                                #директория, в которой находится файл для сжатия
targer="/mnt/linux/backups/db/"        #директория, куда мы будем копировать
out_file=$(date -I).gz                                #имя выходного файла (сегодняшняя дата)
echo $out_file;                                            #вывести имя файла на экран
gzip $source                                            #сжать наш файл
source="/data2.sql.gz"                            #переопределяем переменную source
cp $source $target$out_file                #копируем сжатый файл
rm $source                                                #удаляем исходный файл    
Я думаю, данный скрипт будет полезен в вашей практике. Вообще, shell в сочетании с демоном cron дает огромные возможности по автоматизации процессов системы.
Перед тем, как записать данный файл в crontab-файл, не забудьте сделать его запускаемым:
Chmod +x имя файла

Все операции, которые выполняются кроном, записываются в лог файл, находящийся в папке /var/log. Имя файла - "cron".

www.cybersecurity.ru
Новинки операционных систем 13-03-2007
Отображение скрытого оборудования в Диспетчере устройств 26-08-2008 Новинки операционных систем
«Призрачные» и скрытые устройства, которые не отображаются в Диспетчере устройств Windows (Windows Device Manager), могут приводить к сбоям и системным конфликтам. В этой статье мы расскажем о том, как заставить Диспетчер показывать все скрытые устройства для облегчения диагностики возникающих проблем.Один из самых странных недостатков XP, связанных с оборудованием, – это наличие «призрачных» и скрытых устройств, которые не отображаются в Диспетч...


35% покупателей компьютеров с Windows Vista переходят на Windows XP - исследование 22-08-2008 Новинки операционных систем
Западные исследователи из компании Devil Mountain Software провели занятное исследование, по итогам которого выяснилось, что более трети покупателей новых компьютеров и ноутбуков в США берут машины с предустановленными ОС Windows Vista, однако сразу после покупки делают откат ОС до версии Windows XP.Исследователи отмечают, что из более чем 3 000 опрошенных покупателей новых ПК или ноутбуков, 35% сообщили, что сразу же после покупки или непоср...


Новая жизнь Windows XP 28-07-2008 Новинки операционных систем
Очередной сюрприз преподносит нас корпорация Microsoft: в рамках договора о сотрудничестве ее и некоммерческого фонда One Laptop Per Child (OLPC, что переводится дословно как «по ноутбуку каждому ребенку») было достигнуто соглашение о том, что софтверный гигант подготовит к выпуску специализированную версию WindowsXP, которая будет оптимально работать на особых ноутбуках XO, созданных в рамках такой программы («стодолларовые» ноутбуки, как Вы мог...

Copyright © 2005
"service-centers.com.ua"


Rambler's Top100   Рейтинг@Mail.ru

Работа
Карта сайта
О сайте
Реклама
все объявления
поиск резюме
поиск вакансий
добавить резюме
добавить вакансию

Все объявления
Компьютеры, оргтехника
Автомобили
Продукты питания
Аудио, Фото, Видео
Связь
Отдых, путешествия
Мебель
Разное
Добавить объявление
 Автомобили
 Ремонтно-строительные услуги
 Пресс-релизы
 Железо
 Soft
 Мобильная планета
 Для милых дам
 Родительский клуб
 Недвижимость
 Домашний очаг, усадьба
 Строительство
 Обустройство и безопасность дома
 Сантехника