[comp.sources.d] anyone want to adopt a file archiving package?

edward@csvaxa.UUCP (Edward Wilkinson) (02/04/88)

I have  written  a simple  file archiving  package  which emulates one
running on  our Primes. Unfortunately,  I wrote it using shell scripts
because at the time it was needed yesterday & using C would have taken
longer. It is *very* slow, is a real mess & is full of security holes.
However, I believe the idea is sound & would like to reimplement it in
C. As  usual, I have about 28  other more important  things   to do so
probably won't get around to it.

Is anyone out ther interested in adopting it? This would really entail
reading, understanding & then  completely rewriting it  in C! I'd like
to do it myseld but as it  currently (almost) goes, my  superiors have
thought up better things for me to occupy my time with. 

Here is an old document about the system:

----------cut-here-------------cut-here-------------cut-here----------


		Proposal For A User Archiving System
	       ======================================

   This note  gives a brief  introduction to the  functionality of the
current archiving system on the Prime. It is our intention to use  the
Pr1me system as a  basis  for  a similar system on the  Vaxen. The new
system will perform in the same way as on the Prime so that both users
and operators will not have to learn a new set of commands.


  From The User's Point Of View
 -------------------------------

   The user currently needs to remember four commands :

Archive file :- used to store a copy of a file in the archiving system. 

Get file     :- used to recover a file from the archiving system.

Destroy file :- used to destroy the archived copy of a file.

Files -arc   :- used to display a list of files archived by the user.

This interface seems unnecessarily complex and is  being replaced by a
single command archive as follows :

	archive -p 	replaces	archive
	archive -g 	replaces	get
	archive -d	replaces	destroy
	archive -l	replaces	files -arc


  Description Of Commands
 -------------------------

   This section explains briefly how each user command  works. A later
section   will consider archiving  from  the  point  of  view of   the
operators. In  the following  notation , the  last form  of syntax  is
being phased out.

	archive -p filename [ filename ] ...
	archive -put filename [ filename ] ...
	archive filename [ filename ] ...

This option of the  archive command will  copy specified files  to the
archiving system. Initially , this will  be on disk but  the files may
later be moved to tape.


	archive -g filename [ filename ] ...
	archive -get filename [ filename ] ...
	get filename [ filename ] ...

This  option is  used to retrieve a  file previously archived.  If the
archived copy is still on the archiving  disk , it   will be retrieved
immediately otherwise it will be recovered later from tape.


	archive -d filename [ filename ] ...
	archive -destroy filename [ filename ] ...
	destroy filename [ filename ] ...

The -destroy option is used to remove a file on  the archiving system.
Files in the current directory remain unaffected.


	archive -l filename [ filename ] ... [ -all ] [ -dir ]
	archive -list filename [ filename ] ... [ -all ] [ -dir ]
	files -arc filename [ filename ] ... [ -all ] [ -dir ]

These options are used to list  files stored in  the archiving system.
The -all option  displays all archived files  while  the  -dir  option
shows all  subdirectories from which  files  have been  archived. This
latter option is useful if  a user cannot  remember  where an archived
file used to be stored but has too many archived files to use the -all
option.


  From The Operator's Point Of View
 -----------------------------------

   There is a special disk pack on the Pr1me called <ARCHIV> which has
a directory for every user  who uses  the archiving system.  All files
archived by a user are stored here.  When  space runs  low , files are
transferred to tape.   Each user has  at least one tape and   possibly
more (actually , only  those who use  archiving have tapes).  Archived
files can be recovered and deleted , and a list of  archived files may
be generated. Only files  in a user's directory may  be archived. Each
user's archiving directory also  contains a file of  recovery requests
and a lock file when the archiving system is running. An index file is
also present to record archived  files and their  locations on disk or
tape.
   There are just three  commands  for the operators  to  use - totape
fromtape and scan_index :

        totape [ user ]

When disk  space on the archiving volume  is running low  , totape  is
used to move archived files from disk to tape. If a user  is specified
all the user files  are moved from  <ARCHIV>  to the  user's archiving
tape.  Otherwise , users  consuming the  most space  on  the archiving
volume are saved to tape and their index files are updated.

        fromtape [ user ]

This command is used  to recover files archived  on  tape. If executed
without a username , it scans through the  request  file and starts  a
new invocation of fromtape for any users who  need files recovered. If
given a  user , it just recovers  any files requested   by that  user.
Giving  a user  as an argument is preferable   , as otherwise it takes
ages to run.

        scan_index

Scan_index lists all recoveries pending , so  that fromtape can be run
with the correct usernames. This is  far quicker than running fromtape
without any arguments.

----------cut-here-------------cut-here-------------cut-here----------

Sorry for the verbosity, but I think  it's worth having but can't find
the time myself at the moment.

-- 
Ed Wilkinson @ Computer Centre, Massey University, Palmerston North, NZ
uucp: ...!uunet!vuwcomp!{massey, csvaxa}!edward       DTE: 530163000005
Greybook: E.Wilkinson@nz.ac.massey            Phone: +64 63 69099 x8587
CSNET/ACSnet/Internet: E.Wilkinson@massey.ac.nz    New Zealand = GMT+12