Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Jun 2008 20:24:59 +0200
From:      Roland Smith <rsmith@xs4all.nl>
To:        Helge Rohde <heroh@gmx.de>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: shellscript conditional to check for external disk
Message-ID:  <20080623182459.GA15276@slackbox.xs4all.nl>
In-Reply-To: <200806231725.58862.heroh@gmx.de>
References:  <200806212144.09925.heroh@gmx.de> <20080621224731.GA26997@slackbox.xs4all.nl> <200806231725.58862.heroh@gmx.de>

next in thread | previous in thread | raw e-mail | index | archive | help

--FL5UXtIhxfXey3p5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Jun 23, 2008 at 05:25:58PM +0000, Helge Rohde wrote:
> 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 woul=
d be
> > > a copy of the backup to an external firewire drive. I would like to m=
ake
> > > 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 id=
ea
> > > of simply checking for /dev/da0s1d's existance, but that won't disapp=
ear
> > > on disconnect, so that would leave the  is a possibility that although

Such devices should disappear on disconnect.

> > > 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.

Let me rephrase that. You should actually use the file system's utility
to set a label. This works for UFS (newfs, tunefs), msdosfs (newfs_msdos),
ISO9660 (mkisofs) and ntfs.

> > 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
>=20
> Okay, it obviosly makes sense to use glabel instead of the device node. W=
ill=20
> the glabel appear/disappear depending on whether the drive is connected?

Yes, just like regular device nodes.

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

You can label both drives the same. I don't know what will happen it you
try to connect them both at the same time. I guess that the creation of
the second label will fail.

> Either way, i still need a way to check whether a drive is attached or no=
t.=20

Simple. Check for the device node.

> 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/delet=
e a=20
> zero-byte file somewhere and have the periodic script check for its=20
> existence.=20

It can't completely. It should be able to detect your labeled device and
mount it somewhere. But you _have_ to unmount _before_ the device node
disappears, lest you get the aforementioned panic.

It's easier to have the backup script test if the labeled device node
exists.

Do not forget to print a message (after the script has unmounted the
drive) for the operators that the backup is finished and that the device
may be disconnected.
=20
> Thank you all for your help,

You're welcome!

Roland
--=20
R.F.Smith                                   http://www.xs4all.nl/~rsmith/
[plain text _non-HTML_ PGP/GnuPG encrypted/signed email much appreciated]
pgp: 1A2B 477F 9970 BA3C 2914  B7CE 1277 EFB0 C321 A725 (KeyID: C321A725)

--FL5UXtIhxfXey3p5
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (FreeBSD)

iEYEARECAAYFAkhf6nsACgkQEnfvsMMhpyU3YwCgmi65A8Ivt6f9wuwUGdYHSTBB
jUAAn2GJ9OzDUuvwkwQlnMA3gQXYIZXI
=PaUr
-----END PGP SIGNATURE-----

--FL5UXtIhxfXey3p5--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080623182459.GA15276>