X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=scripts%2Fbackup.sh.in;h=cd0562692d9a7d3089b152fed929481502230613;hb=696338043e52f440853e1143c52b81b41cd59723;hp=6daa9b8bdfcf5ed35d09152aab2bddd62f5f3933;hpb=f04c7701fa16beb215ca4ec2499f41001e6bfd88;p=chaz%2Ftar diff --git a/scripts/backup.sh.in b/scripts/backup.sh.in index 6daa9b8..cd05626 100644 --- a/scripts/backup.sh.in +++ b/scripts/backup.sh.in @@ -1,6 +1,6 @@ #! /bin/sh # This program is part of GNU tar -# Copyright 2004, Free Software Foundation +# Copyright (C) 2004, 2005, 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 @@ -14,8 +14,8 @@ # # 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., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. PROGNAME=`basename $0` CONFIGPATH="$SYSCONFDIR/backup" @@ -27,19 +27,19 @@ LOGPATH=${CONFIGPATH}/log # Default functions for running various magnetic tape commands mt_begin() { - mt -f "$1" retension + $MT -f "$1" retension } mt_rewind() { - mt -f "$1" rewind + $MT -f "$1" rewind } mt_offline() { - mt -f "$1" offl + $MT -f "$1" offl } mt_status() { - mt -f "$1" status + $MT -f "$1" status } # The main configuration file may override any of these variables @@ -48,7 +48,7 @@ MT_REWIND=mt_rewind MT_OFFLINE=mt_offline MT_STATUS=mt_status -# Insure `mail' is in PATH. +# Insure 'mail' is in PATH. PATH="/usr/ucb:${PATH}" export PATH # Put startdate in the subject line of mailed report, since if it happens @@ -78,7 +78,7 @@ bailout() { # Return current date now() { -#IF_DATE_FORMAT_OK +#IF_DATE_FORMAT_OK date +%Y-%m-%d #ELSE_DATE_FORMAT_OK LC_ALL=C date | \ @@ -108,7 +108,7 @@ test_root() { root_fs() { echo "${ROOT_FS}$1" | tr -s / -} +} advice() { echo "Directory $1 is not found." >&2 @@ -139,7 +139,7 @@ init_common() { advice $LOGPATH exit 1 fi - fi + fi # Get the values of BACKUP_DIRS, BACKUP_FILES, and other variables. if [ ! -r $CONFIGFILE ]; then echo "$PROGNAME: cannot read $CONFIGFILE. Stop." >&2 @@ -151,7 +151,7 @@ init_common() { test_root - if [ x"${ADMINISTRATOR}" = x ]; then + if [ x"${ADMINISTRATOR}" = x ]; then bailout "ADMINISTRATOR not defined" fi @@ -159,7 +159,7 @@ init_common() { [ x"$SLEEP_TIME" = x ] && SLEEP_TIME=60 if [ x$VOLNO_FILE = x ]; then - bailout "VOLNO_FILE not specified" + bailout "VOLNO_FILE not specified" fi if [ -r $DIRLIST ]; then @@ -172,9 +172,23 @@ init_common() { if [ \( x"$BACKUP_DIRS" = x \) -a \( x"$BACKUP_FILES" = x \) ]; then bailout "Neither BACKUP_DIRS nor BACKUP_FILES specified" fi - if [ "$RSH" = "" ]; then + if [ -z "$RSH" ]; then RSH=rsh + MT_RSH_OPTION= + else + MT_RSH_OPTION="--rsh-command=$RSH" + fi + if [ -z "$TAPE_FILE" ]; then + TAPE_FILE=/dev/tape fi + + # If TAPE_FILE is a remote device, update mt invocation accordingly + : ${MT:=mt} + case $TAPE_FILE in + *:*) MT="$MT $MT_RSH_OPTION";; + *) ;; + esac + POSIXLY_CORRECT=1 export POSIXLY_CORRECT } @@ -197,8 +211,8 @@ init_backup() { TAR_PART1="${TAR_PART1} --info-script='${DUMP_REMIND_SCRIPT}'" fi # Set logfile name - # Logfile name should be in the form ``log-1993-03-18-level-0'' - # They go in the directory `@sysconfdir@/log'. + # Logfile name should be in the form 'log-1993-03-18-level-0' + # They go in the directory '@sysconfdir@/log'. # i.e. year-month-date. This format is useful for sorting by name, since # logfiles are intentionally kept online for future reference. LOGFILE="${LOGPATH}/log-`now`-level-${DUMP_LEVEL}" @@ -239,7 +253,7 @@ wait_time() { diff = 3600 * (time[1] - now[1]) + 60 * (time[2] - now[2]); if (diff < 0) diff += 3600 * 24 - print diff + print diff }'`" clear echo "${SLEEP_MESSAGE}" @@ -291,7 +305,7 @@ backup_host() { if [ "z${localhost}" != "z$rhost" ] ; then $RSH "$rhost" ${TAR_PART1} -f "${localhost}:${TAPE_FILE}" $@ else - # Using `sh -c exec' causes nested quoting and shell substitution + # Using 'sh -c exec' causes nested quoting and shell substitution # to be handled here in the same way rsh handles it. CMD="exec ${TAR_PART1} -f \"${TAPE_FILE}\" $@" message 10 "CMD: $CMD" @@ -306,7 +320,7 @@ print_level() { else echo "Level ${1-$DUMP_LEVEL}" fi -} +} prev_level() { print_level `expr $DUMP_LEVEL - 1` | tr A-Z a-z @@ -325,22 +339,9 @@ remote_run() { license() { cat - <. +There is NO WARRANTY, to the extent permitted by law. EOF }