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 "\n\n 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
#уточнение у пользователя, желает ли он изменить настройки