X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=inline;f=scripts%2Fbackup.in;h=087ab2c183398bd77b5e1e5cc93ef20b4a08b75e;hb=f86e0605d0e24d2e0424579a8310f6fb81375b92;hp=aa9bca732d82d185b05d3d94b009723464f15cbb;hpb=6c4dc180dde5dd283efb9c07e848132caf5d6b5c;p=chaz%2Ftar
diff --git a/scripts/backup.in b/scripts/backup.in
index aa9bca7..087ab2c 100644
--- a/scripts/backup.in
+++ b/scripts/backup.in
@@ -1,68 +1,47 @@
#! /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
+
+# 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 .
# Load library routines
SYSCONFDIR=${SYSCONFDIR-@sysconfdir@}
-. ${LIBPATH-@libexecdir@}/backup.sh
-
-now() {
-#IF_DATE_FORMAT_OK
- date +%Y-%m-%d
-#ELSE_DATE_FORMAT_OK
- LC_ALL=C date | \
- sed 's/[^ ]* *\([^ ]*\) *\([^ ]*\).* \([^ ]*\)$/\3-\1-\2/
- /-[0-9]$/s/\([0-9]\)$/0\1/
- /Jan/{s/Jan/01/p;q;}
- /Feb/{s/Feb/02/p;q;}
- /Mar/{s/Mar/03/p;q;}
- /Apr/{s/Apr/04/p;q;}
- /May/{s/May/05/p;q;}
- /Jun/{s/Jun/06/p;q;}
- /Jul/{s/Jul/07/p;q;}
- /Aug/{s/Aug/08/p;q;}
- /Sep/{s/Sep/09/p;q;}
- /Oct/{s/Oct/10/p;q;}
- /Nov/{s/Nov/11/p;q;}
- /Dec/{s/Dec/12/p;q;}'
-#ENDIF_DATE_FORMAT_OK
-}
+. ${LIBDIR-@libexecdir@}/backup.sh
DUMP_LEVEL=0
TIME=
+NOW=`now`
usage() {
cat - <&2
- # I'm assuming that the tar will have written an empty
- # file to the tape, otherwise I should do a cat here.
- else
- flush_level_log ${remotehost} ${fsname}
- fi
- ${MT_STATUS}
- echo "sleeping ${SLEEP_TIME} seconds"
- sleep ${SLEEP_TIME}
- shift
+ # 'rsh' doesn't exit with the exit status of the remote command. What
+ # stupid lossage. TODO: think of a reliable workaround.
+ if [ $? -ne 0 ] ; then
+ echo "Backup of ${1} failed." 1>&2
+ # I'm assuming that the tar will have written an empty
+ # file to the tape, otherwise I should do a cat here.
+ else
+ flush_level_log ${remotehost} ${fsname}
+ fi
+ ${MT_STATUS} "$TAPE_FILE"
+ ${DUMP_END-:} $DUMP_LEVEL $remotehost $fs $fsname
+ echo "sleeping ${SLEEP_TIME} seconds"
+ sleep ${SLEEP_TIME}
+ shift
done
# Dump any individual files requested.
if [ "x${BACKUP_FILES}" != "x" ] ; then
- message 1 "processing individual files"
+ message 1 "processing individual files"
- date="`date`"
+ date="`date`"
- make_level_log $localhost
+ if [ $DUMP_LEVEL -eq 0 ]; then
+ make_level_log $localhost
+ else
+ echo "Last `prev_level` dump on this filesystem was on $PREV_DATE"
+ remote_run "${localhost}" cp "`level_log_name MISC $PREV_LEVEL`" "`level_log_name temp`"
+ fi
- echo "Backing up miscellaneous files at ${date}"
-
- backup_host $localhost \
+ echo "Backing up miscellaneous files at ${date}"
+
+ ${DUMP_BEGIN-:} $DUMP_LEVEL $localhost MISC MISC
+ backup_host $localhost \
"--listed=`level_log_name temp`"\
- "--label='`print_level` backup of miscellaneous files at ${date}'" \
+ "--label='`print_level` backup of miscellaneous files at ${NOW}'" \
${BACKUP_FILES}
- if [ $? -ne 0 ] ; then
- echo "Backup of miscellaneous files failed."
- # I'm assuming that the tar will have written an empty
- # file to the tape, otherwise I should do a cat here.
- else
- flush_level_log $localhost
- fi
- ${MT_STATUS}
+ if [ $? -ne 0 ] ; then
+ echo "Backup of miscellaneous files failed."
+ # I'm assuming that the tar will have written an empty
+ # file to the tape, otherwise I should do a cat here.
+ else
+ flush_level_log $localhost MISC
+ fi
+ ${MT_STATUS} "$TAPE_FILE"
+ ${DUMP_END-:} $DUMP_LEVEL $localhost MISC MISC
else
- echo "No miscellaneous files specified"
+ echo "No miscellaneous files specified"
fi
message 1 "final cleanup"
- $MT_REWIND "${TAPE_FILE}"
+ $MT_REWIND "${TAPE_FILE}"
$MT_OFFLINE "${TAPE_FILE}"
-
+ echo "."
) 2>&1 | tee -a "${LOGFILE}"
-echo "Sending the dump log to ${ADMINISTRATOR}"
-mail -s "Results of backup started ${startdate}" ${ADMINISTRATOR} < "${LOGFILE}"
+if test "${ADMINISTRATOR}" != NONE; then
+ echo "Sending the dump log to ${ADMINISTRATOR}"
+ mail -s "Results of backup started ${startdate}" ${ADMINISTRATOR} < "${LOGFILE}"
+fi
-# eof
+# EOF