shellscript conditional to check for external disk

Helge Rohde heroh at gmx.de
Mon Jun 23 17:25:48 UTC 2008


On Saturday 21 June 2008 22:47:31 Roland Smith wrote:
> On Sat, Jun 21, 2008 at 09:44:09PM +0000, Helge Rohde wrote:
> > Hello List,
> >
> > I need to write a backup script, and one of the required actions would be
> > a copy of the backup to an external firewire drive. I would like to make
> > this as easy as possible for the local staff, so i'd like to check
> > whether the drive is attached, if necessary mount it, copy over the
> > backup  and unmount it again, so that the local staff can swap the
> > external disks when they're not used.
> >
> > Is there a canonical way to achieve what i want? I played with the idea
> > of simply checking for /dev/da0s1d's existance, but that won't disappear
> > on disconnect, so that would leave the  is a possibility that although
> > da0 is in /dev, it might not be connected.
>
> Use glabel(8) to give the device an unique label. There is no telling
> which device /dev/da0s1d is pointing to! After labeling you can check
> for /dev/<fstype>/<yourlabel>, which should be unique.
>
> Make sure to unmount the drive at the end of the backup script, or
> you'll get a kernel panic when staff pulls the plug on a mounted device.
>
> Roland

Okay, it obviosly makes sense to use glabel instead of the device node. Will 
the glabel appear/disappear depending on whether the drive is connected?

Is it possible to have more then one physical drive with the same glabel(As i 
plan to utilize two identical Firewire disks) ?

Either way, i still need a way to check whether a drive is attached or not. 
Mounting( and unmounting!) will be done from the periodic backup scripts.
I am not sure how devd could help me with that, besides maybe write/delete a 
zero-byte file somewhere and have the periodic script check for its 
existence. 

Thank you all for your help,
Helge


More information about the freebsd-questions mailing list