#!/bin/bash BACKUPLISTFILE=/local/backups/remotebackuplist BACKUPDISKS="garibaldi:/home neelix:/home garibaldi:/var garibaldi:/local/vidsgallery garibaldi:/local/c garibaldi:/boot garibaldi:/ neelix:/ neelix:/usr garibaldi:/local/scratch/rhbak garibaldi:/root.old neelix:/local/rpms garibaldi:/home/jlarmour/jlarmour.old" BACKUPLEV1PLUS="garibaldi:/var" cd /local/backups/amanda || exit 1 cp /dev/null $BACKUPLISTFILE # Convert slashes to underscores and substitute 'friendly' hostnames with what amanda uses in disk names BACKUPDISKS=`echo $BACKUPDISKS | sed 's@/@_@g; s@garibaldi:@localhost\.@g; s@neelix:@neelix\.jifvik\.org\.@g'` BACKUPLEV1PLUS=`echo $BACKUPLEV1PLUS | sed 's@/@_@g; s@garibaldi:@localhost\.@g; s@neelix:@neelix\.jifvik\.org\.@g'` for disk in $BACKUPDISKS ; do # Find the most recent backup at any level most_recent="" most_recent_lev=0 for f in `find /local/backups/amanda -name \*.$disk.? -print` ; do if [ \( x"$f" = x \) -o \( "$f" -nt "$most_recent" \) ]; then most_recent=$f most_recent_lev=`echo $f | sed 's@.*\.@@g'` fi done # But if we only want level 0s, just stomp on most_recent_lev instead # kludgy but should do for i in $BACKUPLEV1PLUS ; do if [ x"$i" != x"$disk" ]; then most_recent_lev=0 break; fi done for ((level=0; $level <= $most_recent_lev; level++)) ; do newest_at_this_lev="" for f in `find /local/backups/amanda -name \*.$disk.$level -print` ; do if [ \( x"$newest_at_this_lev" = x \) -o \( "$f" -nt "$newest_at_this_lev" \) ]; then newest_at_this_lev=$f fi done if [ x"$newest_at_this_lev" != x ]; then REMOTEFNAME=`echo $newest_at_this_lev | sed 's@^.*tape.../data/.....\.\(.*\)@\1@'` echo $newest_at_this_lev $REMOTEFNAME >> $BACKUPLISTFILE fi done done