Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#15| Dragon God
Demon's Souls |#14| Flamelurker
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Сэйдж Рас Весь текст 822.4 Kb

Приемы профессиональной работы в Unix

Предыдущая страница Следующая страница
1 ... 16 17 18 19 20 21 22  23 24 25 26 27 28 29 ... 71
       мещает их в другую область жесткого диска.

     ФОРМАТ ВЫЗОВА

        autobkp [-c] [>logfile]
             -c копирует файлы в другое место диска вместо
                использования uucp

            Пример вызова
        autobkp < filelist >> bkplog
                Копирует все файлы, указанные в filelist,
                и записывает имена файлов в файл с именем bkplog

            Командный файл autobkp
1   :
2   # @(#) autobkp v1.0 Automatic file backup Author: Russ Sage

4   if [ $# -gt 1 ]
5     then  echo "autobkp: argument error"                     >&2
6           echo "usage: autobkp [-c] [>logfile]" >&2
7           exit
8   fi

10  if [ "$1" = "-c" ]
11    then  COPY=on
12    else  COPY=off
13  fi

15  echo "\nBACKUP DATE  `date  '+%a %m/%d/%y %H:%M:%S'`"
16  echo "-----------------------------------------"

18  SYSTEM=''     # destination system uucp node name
19  :  ${SYSTEM:=`uuname -l`}

21  echo "Sourse system:\t\t`uuname -l`\nDestination system:\t$SYSTEM"

23  while read SRCDIR DESTDIR FILES
24  do
25        if [ ! -d $SRCDIR ]
26          then  echo "autobkp: $SRCDIR is not a directory"
27                continue
28        fi

30        cd $SRCDIR
31        echo "\nFinding files in: $SRCDIR"

33        for FILE in `find . -type f -ctime 0 -name "$FILES" -print`
34        do
35                  case $COPY in
36                  off) uucp $FILE $SYSTEM!$DESTDIR;;
37                  on)  cp $FILE $DESTDIR;;
38                  esac
39                  echo "  Transferred $FILE to $DESTDIR"
40        done
41  done

            Переменные среды выполнения

        COPY       Флаг, определяющий, используется команда uucp или cp
        FILE       Имя каждого файла, найденного в исходном  списке маршрутов
        FILES      Символ-шаблон, указывающий, какие файлы определены
        PATH1      Имя  маршрута-источника
        PATH2      Имя маршрута-приемника
        SYSTEM     Имя системы-приемника для uucp

            Описание
            Зачем нам нужен autobkp?

            Как мы  заметили,  файлы  в UNIX плодятся как кролики.  Чем больше
       файлов мы создаем, тем сильнее желание сохранять их упорядоченными. До-
       вольно  легко  стать  ленивым или получить ложное представление о безо-
       пасности и пренебречь регулярным копированием.
            Вы можете подходить к копированию файлов несколькими путями.  Наи-
       более популярной стратегией является выполнение наращиваемого копирова-
       ния,  когда вся система копируется с некоторой начальной даты (и иногда
       повторно с регулярными интервалами, но не часто). При коротких интерва-
       лах  (обычно ежедневно) файловая система проверяется на наличие файлов,
       которые были модифицированы или добавлены за последние 24  часа.  Такие
       файлы копируются, поэтому копия в целом поддерживается такой, какой яв-
       ляется система в настоящее время.
            Где размещать  копируемые  файлы - это еще один интересный вопрос,
       зависящий от конфигурации вашей системы,  количества доступного  прост-
       ранства и важности данных. Давайте рассмотрим некоторые возможности.
            Автономная микро- или супермикросистема  может  иметь  всего  один
       жесткий диск. Если диск содержит достаточно места для размещения друго-
       го раздела,  вы можете копировать в этот  раздел.  Раздел  может  также
       использоваться как неструктурированное устройство в отличие от файловой
       системы и рассматриваться как магнитная лента или  гибкий  диск.  Среди
       других возможностей хранения информации могут быть второй жесткий диск,
       кассетная лента или устройство копирования на ленту. Если вам недоступ-
       на ни одна из этих возможностей,  вы всегда можете копировать на гибкие
       диски.  Это утомительная ручная работа, но она может быть выполнена при
       помощи команд tar или cpio.
            Если вы также имеете доступ к другой,  большей системе,  такой как
       общий главный компьютер,  вы можете копировать файлы,  посылая их в эту
       систему посредством команды uucp.  Даже если вы имеете достаточно места
       в  вашей  собственной  системе для сохранения ваших копий,  у вас может
       быть очень сильное желание послать копии всех важных файлов  в  главную
       машину,  потому  что  это  даст  вам выносную копию за пределами вашего
       места расположения. Пожары, наводнения и др
       ются.
            Нам необходим механизм,  который обычно запускается  автоматически
       (по команде cron или с помощью процедуры at, описанной в главе 5). Сна-
       чала он обнаруживает все файлы,  которые были изменены в  последние  24
       часа (надеемся, что вы уже имеете первоначальную копию всего). Он начи-
       нает искать файлы из указанных каталогов и копировать подходящие  файлы
       в указанные каталоги-приемники.  Он копирует файлы,  используя утилиты,
       которые наилучшим образом соответствуют используемой вами конфигурации.
       Все эти вещи выполняются нашим командным файлом autobkp.

            Что делает autobkp?

            Вы перечисляете маршруты и autobkp находит файлы по этим маршрутам
       и копирует их в то место, которое вы указали. Вы можете указывать имена
       файлов по образцам,  таким как *.c,  *.h или каким-либо еще.  С помощью
       autobkp вы можете копировать важные файлы без копирования всех  файлов.
       Иногда  это удобно - пропускать файлы при копировании.  Типичные файлы,
       которые вы,  возможно,  не хотите копировать, - это очень большие файлы
       (не являющиеся важными,  как файл core и файлы данных), временные файлы
       (как *.o, которые вновь создаются при каждой новой компиляции) и испол-
       няемые файлы, если у вас есть исходные программы на языке Си и вы може-
       те их скомпилировать для получения новых исполняемых файлов.  Пропуская
       эти файлы, вы можете уменьшить размер ваших копий на мегабайты.
            По умолчанию копирование производится командой uucp, которая пред-
       полагает, что у вас подчиненная система по отношению к главной машине и
       копирует ваши файлы в большую систему.  Если вы хотите копировать  ваши
       файлы в другое место жесткого диска или на другой жесткий диск, исполь-
       зуйте ключ -c для копирования командой cp вместо использования  команды
       uucp.
            Во время процесса копирования на стандартный вывод выводятся сооб-
       щения о состоянии дел.  Это позволяет легко собрать все сообщения путем
       переадресации stdout на время копирования.  Если вы выполняете  autobkp
       вручную,  сообщения выводятся на экран.  Первое сообщение - это заголо-
       вок, который печатает день, дату и время. Это выглядит так:

   --------------------------
   |  BACKUP DATE   Fri 05/23/86 17:33:35
   |

            Второе сообщение определяет систему-источник  и  систему-приемник.
       Оно появляется ниже.  В нашем примере система-источник - russ, а систе-
       ма-приемник - vax.

   --------------------------
   |  Source system:   russ
   |  Destination system:  vax

            При каждом входе в систему-источник выдается следующее сообщение:

   -----------------------------
   |  Finding files in: src_dir
   |

            где выражение src_dir - это место,  откуда файлы будут переданы  в
       цикл копирования.  Обратите внимание, что первое имя должно быть именем
       каталога,  потому что autobkp начинает именно с этого места поиск  фай-
       лов.  Если первое имя не является каталогом, программа печатает сообще-
       ние об ошибке и продолжает работу со следующим набором  источник/прием-
       ник для копирования.

            Для каждого  найденного файла печатается следующее сообщение после
       завершения копирования:

   ------------------------------
   |  Transferred  file  to dest_dir
   |
            которое указывает, что файл file был скопирован в каталог-приемник
       с именем dest_dir.

            Файл со списком маршрутов

            Чтобы сделать интерфейс настолько гибким,  насколько это возможно,
       autobkp читает стандартный ввод.  Переназначая stdin, вы можете поддер-
       живать  разные списки файлов,  которые необходимо копировать и переклю-
       чать их в командной строке.  Вы можете иметь один список маршрутов  для
       системных файлов, другой для исходных файлов, третий для личных файлов,
       четвертый для файлов с готовым продуктом и так  далее.  Для  каждой  из
       этих  групп  файлов  создается список маршрутов и передается в качестве
       входа для autobkp.  Входные данные читаются как три поля:  FROM,  TO  и
       TYPE. Поле FROM - это каталог-источник. Поиск файлов начинается с этого
       места.  Напомним, что autobkp проходит вниз до конца дерева файлов, на-
       чиная с указанного каталога.
            Поле TO - это каталог-приемник, куда все файлы, найденные для дан-
       ной записи в файле со списком маршрутов, помещаются на машине-приемнике
       или в разделе-приемнике.
            Поле TYPE - это описатель-шаблон,  который сообщает autobkp, какие
       файлы искать.  Его значение может быть *,  *.c, *src*, и так далее. Как
       мы увидим позже,  этот описатель передается команде find Unix,  которая
       фактически и выполняет поиск файлов. Вы можете использовать любое выра-
       жение в поле TYPE, если оно соответствует синтаксису find.
            Итак: все файлы,  которые были изменены в последние 24 часа, обна-
       руживаются  в  списке  FROM с помощью описателя TYPE и копируются в об-
       ласть TO.
            Ниже приводится  типичный файл со списком маршрутов.  Он указывает
       несколько каталогов, в которых производится поиск файлов. Обратите вни-
       мание,  что эти каталоги находятся под регистрационным каталогом:  если
       вы хотите скопировать ВЕСЬ регистрационный каталог полностью, вы можете
       указать этот каталог,  но здесь мы хотим выбрать только указанные ката-
       логи.
        /usr/russ/bin    /pack1/russ/.bkp/bin       *
        /usr/russ/doc    /pack1/russ/.bkp/doc       *
        /usr/russ/src    /pack1/russ/.bkp/src       *.c
        /usr/product1    /pack1/russ/.bkp/product1  *.[ch]

            Эти строки копируют каталоги bin,  doc и src на  локальной  машине
       автора.  В случае каталога src мы указали,  что копировать нужно только
       исходные файлы на языке Си.  Будет также скопирована некоторая полезная
       информация  из другого места этой же системы.  Будут скопированы только
       файлы с расширением *.c и *.h.
            Место назначения (прямо указанное в командном файле автоматическо-
       го копирования) - другая система UNIX.  Место  назначения  -  некоторый
       смонтированный диск, регистрационный каталог, подкаталог копий (bkp).

        Использование cron

            Теперь, когда процедура autobkp знает,  что искать, давайте скажем
       ей,  когда искать.  Cron,  вечный резидентный хранитель времени,  может
       легко выполнить эту работу. Входные данные для cron обычно устанавлива-
       ются системным администратором (или кем-либо,  кто имеет права записи в
       /usr/lib/crontab),  так  что вы должны попросить администратора устано-
       вить для вас вход в файл данных cron.  Для получения дополнительной ин-
       формации  о входных данных cron,  прочтите cron(1M) в Руководстве адми-
       нистратора.  Коротко говоря,  полями в файле /usr/lib/crontab  являются
       минута,  час,  день месяца,  месяц и день недели. Используя *, мы можем
       установить принудительно многие из этих полей во все  возможные  значе-
       ния.  Входные данные для cron, копирующие мой регистрационный каталог в
       4.00 утра каждый день каждой недели каждого месяца года, выглядят так:
Предыдущая страница Следующая страница
1 ... 16 17 18 19 20 21 22  23 24 25 26 27 28 29 ... 71
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (52)

Реклама