9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Boyd Roberts <boyd@strakt.com>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] dumb question
Date: Fri, 28 Jun 2002 11:31:47 +0200	[thread overview]
Message-ID: <3D1C2D03.B288CC2B@strakt.com> (raw)
In-Reply-To: <20020627185720.V7017@cackle.proxima.alt.za>

Lucio De Re wrote:
> I keep promising myself I'll write a "stat" modelled on "du" that
> produces a record of stat fields for each entry in the descended
> directory.

I did this once so I could build a magnetic version of /n/dump on ULTRIX.

I wanted to hang onto files modified in the 'recent past' so I needed
something to get at the stat information and then use this to decide
what files to copy (based on type, mtime, size, name, ...).

So I wrote 'walk' and implemented an /n/dump file tree writer as:

    walk | select | push

walk was program as it had to call ftw(3), but the others were scripts.

select contained the logic for deciding if a file was worth copying
and if so it output the name of the file.  I also had a plan that
select could be user supplied, but I never implemented it.

push would copy filenames read from stdin to /n/dump/YYYY/MMDD/...

All 3 ran as the user whose home directory was being copied.  This
was imperfect, but it was secure.  The controlling script used 'su'
to become the user, avoiding the yet another program running as root
syndrome.

Time information output by walk was represented as a numeric value
to avoid re-parsing problems and it was never intended to be read
by humans.  Anyway, it's a trivial exercise to write a filter to
mung the output of walk.

As far as quoting went I think i decided that if you were stupid
enough to name your files with newlines you didn't deserve to get
them copied.  select would catch some of these or push would get
'No such file or directory'.  The name of the file was output
last by walk, after the stat info.

This version of /n/dump was just a convenience so loss of data
was no big drama (the standard backup system would catch that).

The hardest part was getting the script to glue 4 RA-90's [1Gb each]
together so that the last month of stuff was kept/recycled.
Teaching shell scripts about time is no fun.


  parent reply	other threads:[~2002-06-28  9:31 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-26 23:08 forsyth
     [not found] ` <171e27d5f2cfd12a9303117e58818e5b@plan9.bell-labs.com>
2002-06-26 18:27   ` Andrew Stitt
2002-06-26 17:39     ` Sam
2002-06-27  9:17       ` Andrew Stitt
2002-06-27  9:33         ` Ish Rattan
2002-06-27  9:59         ` Lucio De Re
2002-06-27 10:05           ` Boyd Roberts
2002-06-27 10:21             ` Lucio De Re
2002-06-27 15:40           ` Douglas A. Gwyn
2002-06-27 16:57             ` Lucio De Re
2002-06-28  8:45               ` Douglas A. Gwyn
2002-06-28  9:31               ` Boyd Roberts [this message]
2002-06-28 14:30                 ` Douglas A. Gwyn
2002-06-28 15:06                   ` Boyd Roberts
2002-07-01  9:46                   ` Ralph Corderoy
2002-06-27 15:36       ` Douglas A. Gwyn
2002-06-27 15:12         ` Sam
2002-06-28  8:44           ` Douglas A. Gwyn
2002-06-26 22:07     ` Micah Stetson
2002-06-26 22:59       ` Chris Hollis-Locke
2002-06-27  0:03         ` Micah Stetson
2002-06-27  0:44           ` Micah Stetson
2002-06-27  9:17     ` Ralph Corderoy
2002-06-27  9:48       ` Boyd Roberts
2002-06-27 10:07         ` John Murdie
2002-06-27 15:40         ` Douglas A. Gwyn
  -- strict thread matches above, loose matches on Subject: below --
2003-07-15  0:37 [9fans] Dumb question Dan Cross
2003-07-15  3:23 ` boyd, rounin
2002-07-05  9:43 [9fans] dumb question Geoff Collyer
2002-07-01 11:03 rog
2002-07-02  8:53 ` Douglas A. Gwyn
     [not found] <rob@plan9.bell-labs.com>
2002-06-28 16:49 ` rob pike, esq.
2002-06-29  2:23   ` Scott Schwartz
2002-06-28 16:39 rob pike, esq.
2002-06-28 16:31 rog
2002-06-28 16:14 rob pike, esq.
2002-06-28 14:10 rob pike, esq.
2002-06-28 15:42 ` Douglas A. Gwyn
2002-06-28 14:08 rog
2002-06-28  7:52 Fco.J.Ballesteros
2002-06-27 22:59 Geoff Collyer
2002-06-28  4:32 ` Lucio De Re
2002-06-27 18:38 forsyth
2002-06-28  8:45 ` Douglas A. Gwyn
2002-06-27 17:07 rog
2002-06-27 17:07 forsyth
2002-06-27 16:33 ` Sam
2002-06-27 14:43 Richard Miller
2002-06-27 14:33 forsyth
2002-06-27 13:20 rob pike, esq.
2002-07-05  9:07 ` Maarit Maliniemi
2002-06-27 13:19 rob pike, esq.
2002-06-27 13:21 ` david presotto
2002-06-27 15:40 ` Douglas A. Gwyn
2002-06-27 12:27 rog
2002-06-27 12:12 Fco.J.Ballesteros
2002-06-27 12:06 Fco.J.Ballesteros
2002-06-27 11:13 ` Sam
2002-06-27 11:15   ` Sam
2002-06-27 10:29 nigel
2002-06-27  9:44 Stephen Parker
2002-06-27  9:43 Fco.J.Ballesteros
2002-06-27  9:36 Fco.J.Ballesteros
2002-06-27  1:22 okamoto
2002-06-27  1:05 okamoto
2002-06-26 19:04 rog
2002-06-26 19:00 Warrier, Sadanand (Sadanand)
2002-06-27  0:13 ` Steve Arons
2002-06-26 18:41 forsyth
2002-06-26 18:40 David Gordon Hogan
2002-06-26 17:53 rog
2002-06-26 17:45 rob pike, esq.
2002-06-27  9:16 ` Andrew Stitt
2002-06-27  9:17 ` Douglas A. Gwyn
2002-06-26 19:53   ` arisawa
2002-06-27 11:43   ` Ralph Corderoy
2002-06-27 11:04     ` Sam
2002-06-26  8:55 Stephen Parker
2002-06-26 17:18 ` Andrew Stitt
     [not found] <nemo@plan9.escet.urjc.es>
2002-06-25 17:06 ` Fco.J.Ballesteros
2002-06-25 18:01   ` Scott Schwartz
2002-06-26  8:41   ` Andrew Stitt
2002-06-26  9:14     ` Nigel Roles
2002-06-26 17:41       ` Andrew Stitt
2002-06-26 16:08         ` Ish Rattan
2002-06-25 16:48 Andrew Stitt
2002-06-26  8:45 ` arisawa
2002-06-26 17:36   ` Andrew Stitt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3D1C2D03.B288CC2B@strakt.com \
    --to=boyd@strakt.com \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).