X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=scripts%2Fbackup.sh.in;h=adcdfe2d5b9dbceb0d4502bdc5be412984f05588;hb=78b078b455b834695ebd3104ec3dbe8a4ac9f3a3;hp=e78c3268d73f43b1ecafdb0a3456975978337c34;hpb=22fae29fb760d9ad758848748869882f9cb2f8a0;p=chaz%2Ftar diff --git a/scripts/backup.sh.in b/scripts/backup.sh.in index e78c326..adcdfe2 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,25 +27,25 @@ 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 MT_BEGIN=mt_begin MT_REWIND=mt_rewind -MT_OFFLINE=mt_offl +MT_OFFLINE=mt_offline MT_STATUS=mt_status # Insure `mail' is in PATH. @@ -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 | \ @@ -106,6 +106,10 @@ test_root() { fi } +root_fs() { + echo "${ROOT_FS}$1" | tr -s / +} + advice() { echo "Directory $1 is not found." >&2 cat >&2 <&2 @@ -147,7 +151,7 @@ init_common() { test_root - if [ x"${ADMINISTRATOR}" = x ]; then + if [ x"${ADMINISTRATOR}" = x ]; then bailout "ADMINISTRATOR not defined" fi @@ -155,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 @@ -168,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 } @@ -235,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}" @@ -274,7 +292,7 @@ flush_level_log() { # usage: get_dump_time LEVEL get_dump_time() { ls -r ${LOGPATH}/log-*-level-$1 \ - | head -1 \ + | head -n 1 \ | sed "s,.*log-\(.*\)-level-$1,\1," } @@ -302,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 @@ -321,22 +339,9 @@ remote_run() { license() { cat - <. +There is NO WARRANTY, to the extent permitted by law. EOF }