Re: star and /dev/watchdog (exclusion of files)

[email protected] (Joerg Schilling) Fri, 14 Mar 2008 11:30:52 +0100
Newsgroups gmane.comp.archivers.star.user
Message-ID <47da53dc.lKb5VG4a65aP0v9J%[email protected]>
Wolfram Schlich <[email protected]> wrote:

> Hi,
>
> some time ago (I don't remember the version of star I was using back
> then) I stumbled over an issue regarding the exclusion of files from
> being backed up by star.
>
> I am using the following command line arguments to exclude files from
> the backup:
>
> 	-not pattern=3D'^/some/path/here/{%!/*}'
>
> This excludes everything *beyond* /some/path/here (the path itself
> is being backed up, but empty).

What you create here are two patterns:

/some/path/here/%	(where % refers to an empty string)
and
/some/path/here//*

What do you expect from the double slash?

The pattern "/some/path/here/*" would include "/some/path/here/" and any
nonempty replacement for "*". Is this not what you intend?

> So far, so good. Back then I tried this to exclude /dev/* like this:
>
> 	-not pattern=3D'^/dev/{%!/*}'
>
> The problem with this was that star did in some way fiddle with the
> files beyond /dev/ -- the watchdog came alive because star somehow
> touched/opened it and thus it resetted the machine after the
> write-timeout expired (no write to the watchdog device after N
> seconds) :(
> Is there a way to *safely* exclude everything *beyond* a given
> directory but not the directory itself? By 'safely' I mean making
> star NOT touch anything beyond at all.

If this is on Linux, you basically are a victim of bad Linux kernel interfa=
ce =

definitions. See e.g. the paragraph for -xfflags in the section NOTES of the
star man page. Do you use -xfflags?

In general: star (the upper layer) does not understand the patterns and for =

this reason cannot know whether a pattern that excludes a directory _also_ =

excludes all files under that directory. For this reason, star still scans =
the =

whole directory tree. Star however will only _open(2)_ _directories_ for th=
is
purpose except when you are on Linux and you did specify -xfflags.

If you hit a driver with side-effects on open(2) (like a tape driver that =

rewinds on open(2) or close(2)), you are lost on Linux. If a driver does no=
t =

honor O_NDELAY, other problems may occur.

Where is your problem?





J=F6rg

-- =

 EMail:[email protected] (home) J=F6rg Schilling D-13353 Be=
rlin
       [email protected]                (uni)  =

       [email protected]     (work) Blog: http://schily.blogspo=
t.com/
 URL:  http://cdrecord.berlios.de/old/private/ ftp://ftp.berlios.de/pub/sch=
ily