On Wed, 15 Aug 2007, Edwards, David (JTS) wrote:
> Hi,
>
> Tape drives with a very large capacity are very expensive so I thought
> I'd
> use external USB drives instead.
>
> While modifying the backup script, I thought I'd try using the drive as
> a
> tape device instead of going to the trouble of creating a file system.
>
> # dump -f /dev/sd0c /etc
>
> works fine and so does:
> # restore -f /dev/sd0c
>
> I've got a couple of questions about this that I hope you
> can help me with..
>
> Firstly, is this a safe thing to do?
>
> As the disks aren't "mounted" you can remove the disk without
> unmounting it (obviously), so could there be a cache somewhere
> that might not be flushed properly (for instance).
>
> Secondly, I'm using more than one disk (for different backup sets)
> so I need to identify which disk is plugged into which USB port in
> the script (the cables will be labelled).
>
> The best I can come up with is:
> ----
> #!/bin/sh
> usb_port=/dev/usb0
> umass=`usbdevs -f $usb_port -d | grep umass`
> if [ ! -z "$umass" ]; then
> echo "umass is $umass"
> sbus=`dmesg | egrep "scsibus.* at umass0" | tail -1 | awk '{print
> $1}'`
> if [ ! -z "$sbus" ]; then
> echo "sbus is $sbus"
> disk=`dmesg | grep $sbus | tail -1 | awk '{print $1}'`
> if [ ! -z "$disk" ]; then
> echo "disk: $disk"
> fi
> fi
> else
> echo "No disk found"
> fi
> ----
>
> I think this should work (given the kernel dmesg buffer is not busy)
> but it seems messy. Is there a cleaner way to find out the device
> name allocated to a USB disk given a usb port device?
I'd say it's not safe, because a /dev/sdXc device will not do proper
EOT detection.
So why jump through all these loops? Just dump to a file on a
filesystem, and you can use filenames to identify backups. You can
also do dump multiple filesystems on a single disk then.
And if yor machine gets fried, it will be possible to identify the
backup files correctly on another machine.
-Otto