X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=scripts%2Fbackup.in;h=6a50e51d60c9fc21f9190a4d3470cfbb5246e49e;hb=78b078b455b834695ebd3104ec3dbe8a4ac9f3a3;hp=aa9bca732d82d185b05d3d94b009723464f15cbb;hpb=6c4dc180dde5dd283efb9c07e848132caf5d6b5c;p=chaz%2Ftar diff --git a/scripts/backup.in b/scripts/backup.in index aa9bca7..6a50e51 100644 --- a/scripts/backup.in +++ b/scripts/backup.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 # # 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,55 +14,33 @@ # # 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. # 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`" + 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 - make_level_log $localhost + echo "Backing up miscellaneous files at ${date}" - echo "Backing up miscellaneous files at ${date}" - - backup_host $localhost \ + ${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