⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 restore.in

📁 gnu tar 源码包。 tar 软件是 Unix 系统下的一个打包软件
💻 IN
字号:
#! /bin/sh# This program is part of GNU tar# Copyright (C) 2004, 2006 Free Software Foundation, Inc.## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 1, or (at your option)# any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA# 02110-1301, USA.# Load library routinesSYSCONFDIR=${SYSCONFDIR-@sysconfdir@}. ${LIBDIR-@libexecdir@}/backup.shusage() {    	cat - <<EOFusage: $PROGNAME [OPTIONS] [PATTERN [PATTERN...]]Options are:   -a, --all               Restore all filesystems.   -l, --level=LEVEL       Start restoring from the given backup LEVEL                           (default $DUMP_LEVEL).   -v, --verbose[=LEVEL]   Set verbosity level. Default 100.Informational options:   -h, --help              Display this help message.   -V, --version           Display program version.Send bug reports to @PACKAGE_BUGREPORT@.EOF}unset PATTERNDUMP_LEVEL=0CMDLINE="$0 $@"for optdo  if [ -z "$prev" ]; then      option=$opt      optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`  else      option="${prev}=$opt"      prev=""      optarg=$opt  fi  case $option in  -a|--a|--al|--all)	 RESTORE_ALL=1	 ;;  --l=*|--le=*|--lev=*|--leve=*|--level=*)         DUMP_LEVEL=$optarg	 ;;  -l|--l|--le|--lev|--leve|--level)         prev=$option	 ;;  --verb=*|--verbo=*|--verbos=*|--verbose=*)         VERBOSE=$optarg	 ;;  -v|--verb|--verbo|--verbos|--verbose)         VERBOSE=100	 ;;  -v*)   VERBOSE=`expr $option : "-v\(.*\)"`;;  -V|--v|--ve|--ver|--vers|--versi|--versio|--version)    	 echo "restore (@PACKAGE_NAME@) @VERSION@"	 license	 exit;;  -h|--h|--he|--hel|--help)	 usage	 exit;;  -*) bailout "Unknown option $opt. Try $PROGNAME --help for more info.";;  *)  if [ -z "$PATTERN" ]; then         PATTERN=$opt      else         PATTERN="$PATTERN|$opt"      fi      ;;  esacdoneif [ -z "$RESTORE_ALL" ]; then	if [ -z "$PATTERN" ]; then		usage		exit;	fifiinit_restorecat > $LOGFILE <<EOFThis file contains any messages produced by $PROGNAME.It was created by GNU $PROGNAME, from  @PACKAGE@ (@VERSION@).Invocation command line was  \$ $CMDLINEEOFrestore_fs(){    fs="`echo \"${1}\" | sed -e 's/^.*://'`"    fs=`root_fs $fs`    fsname="`echo \"${1}\" | sed -e 's/\//:/g'`"    remotehost="`expr \"${1}\" : '\([^/][^/]*\):.*'`"    if [ -z "$remotehost" ]; then	remotehost=$localhost    fi    message 10 "fs=$fs"    message 10 "fsname=$fsname"    message 10 "remotehost=$remotehost"    LOGPAT="`level_log_name ${fsname} '[0-9]'`"    PREFIX="`level_log_name ${fsname} ''`"    message 10 LOGPAT=$LOGPAT    message 10 PREFIX=$PREFIX    LEVELS=`remote_run "${remotehost}" ls $LOGPAT |      sed "s,$PREFIX,," | sort -n`    message 10 "LEVELS=$LEVELS"    echo "Starting restore of ${1} at level $DUMP_LEVEL."    for level in $LEVELS    do      if [ $level -lt $DUMP_LEVEL ]; then	  message 10 "Skipping level $level"	  continue;      fi      message 10 "Restoring level $level"      DATE=`get_dump_time $level`      FILE="`level_log_name ${fsname} ${level}`"      message 10 "FILE=$FILE"      LABEL="`print_level $level` backup of ${fs} on ${remotehost} at ${DATE}"      ${RESTORE_BEGIN-:} $level $remotehost $fs $fsname      backup_host ${remotehost} \                  "--listed=\"$FILE\"" \                  "--label=\"$LABEL\"" \		  -C $fs      ${RESTORE_END-:} $level $remotehost $fs $fsname    done}restore_files(){    LOGPAT="`level_log_name MISC '[0-9]'`"    PREFIX="`level_log_name MISC ''`"    message 10 LOGPAT=$LOGPAT    message 10 PREFIX=$PREFIX    LEVELS=`remote_run "${localhost}" ls $LOGPAT | sed "s,$PREFIX,," | sort -n`    message 10 "LEVELS=$LEVELS"    echo "Starting restore of miscellaneous files at level $DUMP_LEVEL."    for level in $LEVELS    do      if [ $level -lt $DUMP_LEVEL ]; then	  message 10 "Skipping level $level"	  continue;      fi      message 10 "Restoring level $level"      DATE=`get_dump_time $level`      FILE="`level_log_name MISC ${level}`"      message 10 "FILE=$FILE"      LABEL="`print_level $level` backup of miscellaneous files at ${DATE}"      ${RESTORE_BEGIN-:} $level $localhost MISC MISC      backup_host ${localhost} \                  "--listed=\"$FILE\"" \                  "--label=\"$LABEL\"" \		  -C ${ROOT_FS-/} $@      ${RESTORE_END-:} $level $localhost MISC MISC    done}# Operation Overwiew:## 1. Determine the time of the last backup# 2. Create list of incremental listings to process# 3. For each filesystem:#  3.1. Start at the requested dump level (default 0) and proceed up to#       the last available level:#   3.1.1 Deduce the volume label#   3.1.2. Invoke [rsh] tar --listed=FILE --label=LABEL [opts] -xf $TAPE_FILE# 4. End(message 1 "Preparing for restore"message 1 "processing backup directories"for dir in ${BACKUP_DIRS}do    message 1 "Processing $dir"    case $dir in	${PATTERN-*}) restore_fs $dir;;    esacdoneif [ "x${BACKUP_FILES}" != "x" ] ; then    message 1 "processing miscellaneous files"    if [ -z "$PATTERN" ]; then	restore_files    else	RESTORE_FILES=""	for file in ${BACKUP_FILES}	do	  rel_file=`expr $file : '/\(.*\)'`	  case $file in	      $PATTERN) if [ -z "$RESTORE_FILES" ]; then	                   RESTORE_FILES="$rel_file"		        else		           RESTORE_FILES="$RESTORE_FILES $rel_file"		        fi;;	  esac	done	[ -z "$RESTORE_FILES" ] || restore_files $RESTORE_FILES    fifi) 2>&1 | tee -a "${LOGFILE}"# EOF

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -