X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=scripts%2Fbackup.sh.in;h=e0d1c68162a97a7c555b4fd7bde4336780348864;hb=5cb79ed51999e36add131116d3d3db586be9870e;hp=e78c3268d73f43b1ecafdb0a3456975978337c34;hpb=22fae29fb760d9ad758848748869882f9cb2f8a0;p=chaz%2Ftar
diff --git a/scripts/backup.sh.in b/scripts/backup.sh.in
index e78c326..e0d1c68 100644
--- a/scripts/backup.sh.in
+++ b/scripts/backup.sh.in
@@ -1,21 +1,22 @@
#! /bin/sh
-# This program is part of GNU tar
-# Copyright 2004, Free Software Foundation
-#
-# This program is free software; you can redistribute it and/or modify
+# Make backups.
+
+# Copyright 2004-2006, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar 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,
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# GNU tar 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., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# along with this program. If not, see .
PROGNAME=`basename $0`
CONFIGPATH="$SYSCONFDIR/backup"
@@ -27,28 +28,28 @@ 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.
+# 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 +79,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 +107,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 +152,7 @@ init_common() {
test_root
- if [ x"${ADMINISTRATOR}" = x ]; then
+ if [ x"${ADMINISTRATOR}" = x ]; then
bailout "ADMINISTRATOR not defined"
fi
@@ -155,7 +160,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 +173,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
}
@@ -193,8 +212,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}"
@@ -235,7 +254,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 +293,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,"
}
@@ -287,7 +306,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"
@@ -302,7 +321,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 +340,9 @@ remote_run() {
license() {
cat - <.
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
EOF
}