源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

备份shell脚本实例代码

  • 时间:2021-06-16 16:29 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:备份shell脚本实例代码
1、backup_run.sh
[u]复制代码[/u] 代码如下:
    #!/bin/sh     # backup_run     # script to run the backups     # loads in a setting file for the user to change     SOURCE=/home/bob/backup.defaults     check_source()     {         # check_source         # can we load the file         # backup.defaults is the source file containing config/functions         # make sure your path includes this directory you are runing from         if [ -r $SOURCE ];then           . $SOURCE # load $source         else             echo "`basename $0`: cannot locate default file"             exit 1         fi     }     header()     {         # header         USER=`whoami`         MYDATE=`date +%A" "%e" of "%B-%Y`         clear         cat << HH         User: $USER $MYDATE                     NETWORK SYSTEM BACKUP                     =====================     HH     }     change_settings()     {         # change_settings         # let the user see the default 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 device are either...rmt0,rmt1,rmt3"             esac         done         # if the user hits return on any of the fields, the default value will be used         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) break                 Normal|normal) break                 Sybase|sybase) break                 *) echo "The choices are either ... full,normal,sybase"             esac         done         # re-assign the temp varialbes back to original variables that         # were loaded in         _DEVICE=$T_DEVICE;_INFORM=$T_INFORM;_TYPE=$T_TYPE     }     show_settings()     {         # display current settings         cat << HH                     Default Settings Are...                 Tape Device To Be Used : $_DEVICE                 Mail Admin When Done : $_INFORM                 Type Of Backup : $_TYPE                 Log File Of Backup : $_LOGFILE     HH     }     get_code()     {         # users get 3 attempts at entering the correct code         # _CODE is loaded in from the source file         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_drive()     {         # make sure we can rewind the tape         mt -f /dev/$_DEVICE rewind > /dev/null 2>&1         if [ $? -ne 0 ];then             return 1         else             return 0         fi     }     #====================== main =======================     # can we source the file     check_source     header     # display the loaded in variables     show_settings     # ask user if he/she wants to change any settings     if continue_prompt "Do you wish To Change Some of The System Defaults" "Y";     then         echo $?            # yes then enter code name         if get_code;then             # change some settings             change_settings         fi     fi     #------------------ got settings... now do backup     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     # file system paths to backup     case $_TYPE in         Full|full)             BACKUP_PATH="sybase syb/suppor etc var bin apps usr/local"         Normal|normal)             BACKUP_PATH="etc var bin apps usr/local"         Sybase|sybase)             BACKUP_PATH="sybase syb/suppor"     esac     # now for backup     cd /     echo "Now starting backup......"     find $BACKUP_PATH -print | cpio -ovB -O /dev/$_DEVICE >> $_LOGFILE 2>&1     # if the above cpio does not work on your system try cpio below, instead     # find $BACKUP_PATH -print | cpio -ovB > /dev/$_DEVICE >> $_LOGFILE 2>&1     # to get more information on the tape change -ovB to -ovcC66536     if [ "$_INFORM" = "yes" ];then         echo "Backup finished check the log file" | mail admin     fi
2、backup.defaults
[u]复制代码[/u] 代码如下:
    #!/bin/sh     # backup.defaults     # configuration default file for network backups     # edit this file at your own     # name backup.defaults     # --------------------------------------------     # not necessary for the environments to be in quotes.. but     _CODE="comet"     _LOGFILE="/appdva/backup/log.`date +%y%m%d`"     _DEVICE="rmt0"     _INFORM="yes"     _TYPE="Full"     #---------------------------------------------     continue_prompt()     {         # continue_prompt         # to call: continue_prompt "string to display" default_answer         _STR=$1         _DEFAULT=$2         # check we have the right params         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             if [ "$_ANS" = "" ];then                 : ${_ANS:=$_DEFAULT}                 case $_ANS in                     Y) return 0                     N) return 1                 esac             fi             # user has selected something             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     }
3、运行:
[u]复制代码[/u] 代码如下:
$./backup_run.sh backup.defaults
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部