27.2. Сценарий backup_gen

27.2. Сценарий backup_gen

Сценарий backup_gen приводится здесь вовсе не для иллюстрации методики резервирования каталогов. Этот сценарий является удачным примером совместного использования настроек, общих для нескольких сценариев.

Сценарий backup_gen предназначен для создания резервных копий. При выполнении сценария просматривается заданный по умолчанию файл конфигурации, который затем используется для резервирования системы. При желании пользователь может изменять настройки, заданные по умолчанию. Сценарий является отличным примером того, как различные сценарии могут применять одинаковые настройки или изменять их во время выполнения сценария. После запуска сценария выполняется проверка на наличие исходного файла (backup.defaults). Если этот файл не найден, сценарий завершается.

При выполнении сценария отображается заголовок экрана и настройки, заданные по умолчанию. Пользователю направляется запрос о том, требуется ли изменять какие?либо настройки, заданные по умолчанию. Если ответ положителен, поступает запрос на ввод кода, применяемого для изменения необходимых настроек. Для ввода правильного кода пользователю предоставляются три попытки; если введен неверный код, используются настройки, заданные по умолчанию. При вводе корректного кода пользователь может изменить приведенные ниже настройки (значения, заданные по умолчанию, содержатся в квадратных скобках []):

tape device [rmt0] Можно выбрать rmt1 и rmt3
mail admin when the backup has finished [yes] Нет вариантов выбора
type of backup [full] Можно выбрать опцию
normal или sybase

Изменения настроек выполняются с помощью временных переменных. Для получения доступа к заданным по умолчанию настройкам установите курсор мыши в любом поле и нажмите клавишу [Return]. Однако следующие настройки изменять нельзя:

backup log filename code name.

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

Далее приводится соответствующий сценарий.

$ pg backup_run

#!/bin/sh

#backup_run

#сценарий выполнения резервного копирования

#загрузка файла с конфигурационными параметрами

SOURCE=/appdva/bin/backup.defaults

check_source ()

{

#check_source

#файл backup.defaults содержит параметры конфигурации/функции

#проверка того, что путь содержит нужный каталог

if [ -r $SOURCE ]; then

. $SOURCE

else

echo "`basename $0`: cannot locate defaults file"

exit 1

fi

}

header () {

# header

USER=`whoami`

MYDATE=`date + %A" "%e" of "%B-%Y`

clear

cat << MAYDAY

User : $USER $MYDATE

NETWORK SYSTEM BACKUP

MAYDAY

}

change_settings () {

# change_settings

# отображение параметров, заданных по умолчанию

header

echo "Valid Entries Are…"

echo "Tape Device: rmt0, rmt1, rmt3"

echo "Mail Admin: yes, no"

echo "Backup Type: full, normal, sybase "

while :

do

echo -n -c " Tape Device To Be Used For This Backup [$_DEVICE] :"

read T_DEVICE

: ${T_DEVICE:=$_DEVICE}

case $T_DEVICE in

rmt0|rmt1|rmt3) break;;

*) echo "The devices are either… rmt0, rmt1, rmt3"

esac

done

#если пользователь нажимает клавишу ввода при установке курсора в любом

#из полей, применяются настройки, заданные по умолчанию

while :

do

echo -n "Mail Admin When Done [$INFORM] :"

read T_INFORM

: ${T_INFORM:=$_INFORM}

case $T_INFORM in

yes|Yes) break;;

no|No) break;;

*) echo "The choices are yes, no";;

esac

done

while :

do

echo -n " Backup Type [$_TYPE] :"

read T_TYPE

: ${T_TYPE:=$_TYPE}

case $T_TYPE in

Full|full) breaks;;

Normal|normal)break;;

Sybase|sybase)break;;

*) echo "The choices are either… full, normal, sybase";;

esac

done

#повторное присваивание значений временных переменных исходным переменным,

#которые были загружены

_DEVICE=$T_DEVICE;

_INFORM=$T_INFORM;

_INFORM=$T_INFORM

}

show_settings ()

# отображение текущих настроек

{

cat << MAYDAY

Default Settings Are…

Tape Device To Be Used : $_DEVICE

Mail Admin When Done : $_INFORM

Type Of Backup : $_TYPE

Log file of backup : $_LOGFILE

MAYDAY

}

get_code ()

{

#пользователи имеют 3 попытки для ввода правильного кода

#_CODE загружается из исходного файла

clear

header

_COUNTER=0

echo "YOU MUST ENTER THE CORRECT CODE TO BE ABLE TO CHANGE DEFAULT SETTINGS"

while :

do

_COUNTER=`expr $_COUNTER + 1`

echo -n "Enter the code to change the settings:"

read T_CODE

# echo $_COUNTER

if [ "$T_CODE"="$_CODE" ]; then

return 0

else

if [ "$_COUNTER" -gt 3 ]; then

echo "Sorry incorrect code entered, you cannot change the settings.." return 1

fi

fi

done

}

check_drivef() {

# перемотка ленты

mt -f /dev/$_DEVICE rewind > /dev/null 2>&1

if [ $? -ne 0 ]; then

return 1 else

return 0

fi

)

#========== main ==============

# чтение файла с параметрами

check_source

header

#отображение содержимого переменных show_settings

#уточнение у пользователя, желает ли он изменить настройки

if continue_prompt "Do you wish To Change Some Of The System Defaults" "Y"; then

# да, тогда введите имя

if get_code; then

# изменение параметров change_settings fi fi

# параметры получены, резервное копирование

if check_drive; then

echo "tape OK…."

else

echo "Cannot rewind the tape..is it in the tape drive ???"

echo "Check it out"

exit 1

fi

# что копировать

case $_TYPE in

Full|full)

BACKUP_PATH="sybase syb/support etc var bin apps use/local";;

Normal|normal)

BACKUP_PATH="etc var bin apps usr/local";;

Sybase|sybase)

BACKUP_PATH="Sybase syb/support";;

esac

# резервное копирование

cd /

echo "Now starting backup "

find $BACKUP_PATH -print | cpio -ovB -O /dev/$_DEVICE >> $_LOGFILE 2>&1

#если приведенная выше команда cpio не выполняется в системе,

#воспользуйтесь командой cpio, приведенной ниже

#find $BACKUP_PATH -print [ cpio -ovB > /dev/$_DEVICE >> $_LOGFILE 2>&1

#для получения дополнительной информации измените -ovB на -ovcC66536

if [ "$_INFORM"="yes" ]; then

echo "Backup finished check the log file" | mail admin fi

Файл backup.defaults содержит заданные по умолчанию настройки наряду с функцией continue_prompt. Ниже приводится содержимое файла.

$ pg backup.defaults

#!/bin/sh

#backup.defaults

#файл конфигурации, заданный по умолчанию, для сетевых резервных копий

#редактируете его на свой страх и риск!!

#

_CODE="comet"

_LOGFILE="/appdva/backup/log.`date +%y%m%d`"

_DEVICE="rmt0"

_INFORM="yes"

_TYPE="Full"

continue_prompt ()

#continue_prompt

#для вызова: continue_prompt "отображаемая строка"

default_answer ()

{

_STR=$1

_DEFAULT=$2

# проверка ввода корректных параметров

if [ $# -lt 1 ]; then

echo "continue_prompt: I need a string to display"

return 1

fi

while : do

echo -n "$_STR [Y.. N] [$_DEFAULT]:"

read _ANS

: ${_ANS:=$_DEFAULT]

if [ "$_ANS" = "" ]; then

case $_ANS in

Y) return 0 ;;

N) return 1 ;;

esac

fi # пользователь сделал выбор

case $_ANS in

y|Y|Yes|YES) return 0;;

n|N|No|NO) return 1;;

*) echo "Answer either Y or N, default is $_DEFAULT";;

esac

echo $_ANS

done

}

Ниже приводится поток вывода при отображении настроек, заданных по умолчанию, причем пользователя запрашивают, желает ли он изменить эти настройки:

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

Tape Device: rmt0, rmt1, rmt3

Mail Admin: yes, no

Backup Type: full, normal, Sybase

Tape Device To Be Used For This Backup [rmt0]:

Mail Admin When Done [yes]:

Backup Type [Full]: Normal

Cannot rewind the tape..is it in the tape drive ???

Check it out

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Режим Сценарий

Из книги Pinnacle Studio 11 автора Чиртик Александр Анатольевич

Режим Сценарий Итак, режим Сценарий лучше всего подходит для задания или проверки последовательности сцен, из которых составляется фильм проекта. Каждая сцена в этом режиме представлена кадром на киноленте. Кроме сцен в кадрах ленты могут быть показаны титры и меню. Как


2.2. Фрейм-сценарий

Из книги Фреймы для представления знаний автора Мински Марвин

2.2. Фрейм-сценарий Отмеченные свойства, позволяющие экономить память и время восприятия, очевидно, могут проявляться и при представлении невизуальных знаний о мире. Действительно, системы невизуальных фреймов, например описываемых ниже фреймов-сценариев, можно


14.9.4 Сценарий TFTP

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

14.9.4 Сценарий TFTP Работу протокола TFTP можно проиллюстрировать простым сценарием. На рис. 14.7 показано, как в TFTP реализуется чтение удаленного файла. После отправки запрашиваемой стороной блока данных она переходит в режим ожидания ACK на посланный блок и, только получив этот


17.5 Сценарий NNTP

Из книги Добавьте в корзину. Ключевые принципы повышения конверсии веб-сайтов автора Айзенберг Джеффри

17.5 Сценарий NNTP Как и SMTP, протокол NNTP работает поверх сеанса telnet в режиме NVT. Показанный ниже диалог демонстрирует взаимодействие по пересылке новостей. В данном случае клиент:? Соединяется с сервером? Запрашивает у сервера список поддерживаемых команд? Запрашивает


24.4.1 Сценарий 1

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

24.4.1 Сценарий 1 Технология Message Digest (резюме сообщения) подойдет для сценария 1 — аутентифицировать отправителя и определить изменения в данных. Рассмотрим, как работает этот механизм (см. рис. 24.1):? Источник и назначение знают секретный ключ.? Источник выполняет вычисление,


24.4.5 Сценарий 2

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

24.4.5 Сценарий 2 В сценарии 1 безопасность реализована на уровне хостов. Но предположим, что имеется пользователь или роль, требующие другого уровня безопасности. Основы безопасности должны обеспечиваться на уровнях пользователя, роли и важной информации.Допустим, что


24.4.6 Сценарий 3

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

24.4.6 Сценарий 3 Сценарий 3 показан на рис. 24.4. Цель состоит в том, чтобы сделать невидимым для внешнего мира весь трафик, который компания XYZ посылает через недоверенную сеть. Для этого используется инкапсуляция в режиме туннеля, т.е. датаграммы шифруются и инкапсулируются


Линейный сценарий

Из книги автора

Линейный сценарий Как уже было сказано, веб-аналитики описывают сценарий убеждения как последовательность шагов. Такие шаги посетитель делает или в самом начале, или уже в конце процесса конверсии. В первом случае это может быть:переход по ссылке из поисковой системы


Нелинейный сценарий

Из книги автора

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


Простейший Web-сценарий

Из книги автора

Простейший Web-сценарий Первый Web-сценарий, который мы напишем, будет совсем простым. Он выведет на Web-страницу текущую дату.В самом начале этой книги, приступив к изучению HTML, мы создали небольшую Web-страничку 1.1.htm. Найдем ее и откроем в Блокноте. В самом конце ее HTML- кода,


Простейший Web-сценарий

Из книги автора

Простейший Web-сценарий Первый Web-сценарий, который мы напишем, будет совсем простым. Он выведет на Web-страницу текущую дату.В самом начале этой книги, приступив к изучению HTML, мы создали небольшую Web-страничку 1.1.htm. Найдем ее и откроем в Блокноте. В самом конце ее HTML- кода,


27.5. Сценарий logroll

Из книги автора

27.5. Сценарий logroll Некоторые системные журнальные файлы увеличиваются довольно быстро. Становится затруднительным вручную уточнять размеры журнальных файлов и выполнять прокрутку определенного журнала (обычно, с помощью отметки даты). Поэтому назрела необходимость


29.4.1. Базовый сценарий cgi

Из книги автора

29.4.1. Базовый сценарий cgi Все сценарии обычно находятся в каталоге cgi?bin Web–сервера, хотя подобное размещение может быть изменено. Для изменения размещения сценариев и подключения сервера cgi следует обратиться к файлам конфигурации srm.conf и разделу ScriptAlias. Все сценарии