This is a daily mail from my Alix router. I do a dump in daily.local (see below) and most of the time it works just fine. Occasionaly though, the DUMP fails saying
> DUMP: End of tape detected > DUMP: Volume 1 completed at: Mon Jan 5 01:30:44 2015 > DUMP: Volume 1 took 0:00:07 > DUMP: Volume 1 transfer rate: 2101 KB/s > DUMP: Change Volumes: Mount volume #2 > DUMP: fopen on /dev/tty fails: Device not configured > DUMP: The ENTIRE dump is aborted. That puzzles me, as I dump to stdout, redirecting to a file (see below). (I vaguely remember that the reason I switched from "dump -f file.dump ..." to "dump -f - ... > file.dump" was that I was advised her by a developer about the tape legacy of dump, but I forgot what exactly was the problem then and can't find it in archives.) Why would "dump -f - ... > file.dump" think that it reached an end of tape? On Jan 05 01:31:08, r...@gw.stare.cz wrote: > OpenBSD 5.3-current (GENERIC) #2: Thu Jun 13 00:04:14 MDT 2013 > dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC > > 1:31AM up 1 day, 16:35, 0 users, load averages: 1.61, 0.66, 0.34 > > Running daily.local: > > Backing up into /backup/gw.stare.cz > > errors dumping /var/log: > DUMP: Date of this level 0 dump: Mon Jan 5 01:30:31 2015 > DUMP: Date of last level 0 dump: the epoch > DUMP: Dumping /dev/rwd0g (/var/log) to standard output > DUMP: mapping (Pass I) [regular files] > DUMP: mapping (Pass II) [directories] > DUMP: estimated 31599 tape blocks. > DUMP: Volume 1 started at: Mon Jan 5 01:30:37 2015 > DUMP: dumping (Pass III) [directories] > DUMP: dumping (Pass IV) [regular files] > DUMP: End of tape detected > DUMP: Volume 1 completed at: Mon Jan 5 01:30:44 2015 > DUMP: Volume 1 took 0:00:07 > DUMP: Volume 1 transfer rate: 2101 KB/s > DUMP: Change Volumes: Mount volume #2 > DUMP: fopen on /dev/tty fails: Device not configured > DUMP: The ENTIRE dump is aborted. > -rw------- 1 hans wheel 4.5M Jan 5 01:30 dump.home.0 > -rw------- 1 hans wheel 53.1M Jan 5 01:30 dump.root.0 > -rw------- 1 hans wheel 7.7M Jan 5 01:30 dump.var.0 > -rw------- 1 hans wheel 14.3M Jan 5 01:30 dump.var.log.0 > -rw------- 1 hans wheel 820K Jan 5 01:30 dump.var.spool.0 > -rw------- 1 root wheel 5.2K Jan 5 01:30 root-201501050130.tar.gz > -rw------- 1 root wheel 1.3M Jan 5 01:31 etc-201501050130.tar.gz > -rw------- 1 root wheel 481K Jan 5 01:31 var-backups-201501050131.tar.gz > -rw------- 1 root wheel 4.2K Jan 5 01:31 var-named-201501050131.tar.gz > > Checking subsystem status: > > disks: > Filesystem 1K-blocks Used Avail Capacity Mounted on > /dev/wd0a 204542 53740 140576 28% / > /dev/wd0d 608686 190580 387672 33% /usr > /dev/wd0e 251822 28258 210974 12% /usr/local > /dev/wd0f 251822 7010 232222 3% /var > /dev/wd0g 251822 32156 207076 13% /var/log > /dev/wd0h 1024526 2 973298 0% /tmp > /dev/wd0i 299054 4212 279890 1% /home > /dev/wd0j 1024526 795130 178170 82% /backup > > Last dump(s) done (Dump '>' file systems): > /dev/rwd0a ( ) Last dump: Level 0, Date Mon Jan 5 01:30 > /dev/rwd0f ( ) Last dump: Level 0, Date Mon Jan 5 01:30 > /dev/rwd0g ( ) Last dump: Level 6, Date Sun Jan 4 01:30 > /dev/rwd0i ( ) Last dump: Level 0, Date Mon Jan 5 01:30 Jan #!/bin/sh umask 077 err() { echo $@ >&2 } # We distinguish two kinds of backups: # BKPDUMP are dump(8)s of entire filesystems - level 0 # on Monday mornings, incerementals during the week. # These are typically very big, and we store them to # a dedicated backup disk. # BKPTAR are tarballs of certain directories (/etc), # that are tupically much smaller and we rotate them. # TODO: rotate the old ones out of existence. # If BKPSCP is defined, we also scp them there. This # requires an unattended login via a ssh key. BKPUSR=hans BKOGRP=wheel BKPLOG=/tmp/dump.$$.log BKPDIR=/backup/`hostname` BKPTAR="/etc /var/backups" BKPSCP="h...@biblio.stare.cz:$BKPDIR" BKPDMP="/ /var /var/mysql /var/postgresql /var/www /home" bkpdmp() { # $1 is the dump level l=$1 for fs in $BKPDMP; do [ "$fs" = "/" ] && fsname=".root" || fsname=`echo $fs | tr / .` [ "x$l" = "x0" ] && rm -f $BKPDIR/dump$fsname.? f=$BKPDIR/dump$fsname.$l > $f && chown $BKPUSR:$BKPGRP $f && chmod 600 $f dump -$l -a -u -f - $fs > $f 2> $BKPLOG \ || { err errors dumping $fs: ; cat $BKPLOG >&2 ; } rm -f $BKPLOG done { cd $BKPDIR ; ls -lh dump.* ; } } bkptar() { for dir in $BKPTAR; do f=$BKPDIR/`echo ${dir#/} | tr / -`-`date +%Y%m%d%H%M`.tar.gz > $f && chown $BACKUPUSR:$BACKUPGRP $f && chmod 600 $f tar czf $f $dir 2> $BKPLOG \ || { err errors tarring $dir: ; cat $BKPLOG >&2 ; } # TODO: md5 { cd $BKPDIR ; ls -lh ${f##*/} ; } test -n "$BKPSCP" && scp -q $f $BKPSCP done } if test -d $BKPDIR ; then echo; echo Backing up into $BKPDIR; echo bkpdmp $((`date +%u` - 1)) bkptar else err Backup directory $BKPDIR does not exist fi