V10/vol2/fm/fm.ps

%!PS	div 112 page header - research!pg
/inch {72 mul} def
/pageborder
{ 25 747 moveto
  590 747 lineto
  590 25 lineto
  25 25 lineto
  closepath
  2 setlinewidth
  0 setgray
  stroke
} def

/topborder
{ 25 773 moveto
  590 773 lineto
  590 747 lineto
  25 747 lineto
  closepath
  2 setlinewidth
  0 setgray
  stroke
} def

/toptext
{
  120 756 moveto
  /Courier-Bold findfont 14 scalefont setfont
  (andrew Mon Feb  5 16:06:07 EST 1990) show
} def

/prface
{
  gsave
  translate rotate scale
  setgray
  48 48 true [48 0 0 -48 0 48] {<000000000000
000000000000
000007200000
00003ff80000
0001fffe0000
0007ffff0000
000fffffc000
001fffffc000
001ff44ff800
003f4002fe00
00fe8009ff00
00fd00027f80
01fe0001ffc0
01f800055fc0
01fe8002ffc0
01f80004bfc0
01fd00097fc0
00fa0003ffe0
00fdfe3effc0
01ff5ffdffc0
00fd57f6ffc0
03faf77b7fc0
01fe8a71ff80
01fa02b2bfe0
01fb4b75efc0
01b8ac2fbfc0
005904505f80
003803d0bf00
001006f25d00
009a0970ab00
00d426ac5e00
0078105ebe00
002d6ff37400
003cd02edc00
005f255bfc00
003fcad57c00
000eb5d7f800
0007fbfff000
0007fffff000
0003fffff000
0007ffffe000
0003ffffe000
0003ffffc000
0003ffffc000
0003ffffa000
0000ffffa000
0003fffac000
000216a34400>} imagemask
  grestore
} def

save
	mark
	statusdict begin /manualfeed false def end
	/#copies 1 def
	erasepage initgraphics
	pageborder
	topborder
	toptext
	0 14 14 0 94 752 prface
	.3 180 180 -90 3.0 inch 10.2 inch prface
	showpage
	cleartomark
restore
%!PS
%%Version: 3.1
%%DocumentFonts: (atend)
%%Pages: (atend)
%%EndComments
%
% Version 3.2 prologue for troff files.
%

/#copies 1 store
/aspectratio 1 def
/formsperpage 1 def
/landscape false def
/linewidth .3 def
/magnification 1 def
/margin 0 def
/orientation 0 def
/resolution 720 def
/xoffset 0 def
/yoffset 0 def

/roundpage true def
/useclippath true def
/pagebbox [0 0 612 792] def

/R  /Times-Roman def
/I  /Times-Italic def
/B  /Times-Bold def
/BI /Times-BoldItalic def
/H  /Helvetica def
/HI /Helvetica-Oblique def
/HB /Helvetica-Bold def
/HX /Helvetica-BoldOblique def
/CW /Courier def
/CO /Courier def
/CI /Courier-Oblique def
/CB /Courier-Bold def
/CX /Courier-BoldOblique def
/PA /Palatino-Roman def
/PI /Palatino-Italic def
/PB /Palatino-Bold def
/PX /Palatino-BoldItalic def
/Hr /Helvetica-Narrow def
/Hi /Helvetica-Narrow-Oblique def
/Hb /Helvetica-Narrow-Bold def
/Hx /Helvetica-Narrow-BoldOblique def
/KR /Bookman-Light def
/KI /Bookman-LightItalic def
/KB /Bookman-Demi def
/KX /Bookman-DemiItalic def
/AR /AvantGarde-Book def
/AI /AvantGarde-BookOblique def
/AB /AvantGarde-Demi def
/AX /AvantGarde-DemiOblique def
/NR /NewCenturySchlbk-Roman def
/NI /NewCenturySchlbk-Italic def
/NB /NewCenturySchlbk-Bold def
/NX /NewCenturySchlbk-BoldItalic def
/ZD /ZapfDingbats def
/ZI /ZapfChancery-MediumItalic def
/VR /Varitimes#Roman def
/VI /Varitimes#Italic def
/VB /Varitimes#Bold def
/VX /Varitimes#BoldItalic def
/S  /S def
/S1 /S1 def
/GR /Symbol def
/Bitmap /Bitmap def
/Sonata /Sonata def
/UnivMath1 /Universal-MathOne def
/UnivMath2 /Universal-MathTwo def
/UnivMath3 /Universal-MathThree def
/UnivMath4 /Universal-MathFour def
/UnivMath5 /Universal-MathFive def
/UnivMath6 /Universal-MathSix def

/inch {72 mul} bind def
/min {2 copy gt {exch} if pop} bind def

/setup {
	counttomark 2 idiv {def} repeat pop

	landscape {/orientation 90 orientation add def} if
	/scaling 72 resolution div def
	linewidth setlinewidth
	1 setlinecap

	pagedimensions
	xcenter ycenter translate
	orientation neg rotate
	width 2 div neg height 2 div translate
	xoffset inch yoffset inch neg translate
	margin 2 div dup neg translate
	magnification dup aspectratio mul scale
	scaling scaling scale

	/Symbol /S Sdefs cf
	/Times-Roman /S1 S1defs cf
	0 0 moveto
} def

/pagedimensions {
	useclippath userdict /gotpagebbox known not and {
		/pagebbox [clippath pathbbox newpath] def
		roundpage currentdict /roundpagebbox known and {roundpagebbox} if
	} if
	pagebbox aload pop
	4 -1 roll exch 4 1 roll 4 copy
	landscape {4 2 roll} if
	sub /width exch def
	sub /height exch def
	add 2 div /xcenter exch def
	add 2 div /ycenter exch def
	userdict /gotpagebbox true put
} def

/pagesetup {
	/page exch def
	currentdict /pagedict known currentdict page known and {
		page load pagedict exch get cvx exec
	} if
} def

/decodingdefs [
	{counttomark 2 idiv {y moveto show} repeat}
	{neg /y exch def counttomark 2 idiv {y moveto show} repeat}
	{neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat}
	{neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat}
	{counttomark 2 idiv {y moveto show} repeat}
	{neg setfunnytext}
] def

/setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def

/w {neg moveto show} bind def
/m {neg dup /y exch def moveto} bind def
/done {/lastpage where {pop lastpage} if} def

/f {
	dup /font exch def findfont exch
	dup /ptsize exch def scaling div dup /size exch def scalefont setfont
	linewidth ptsize mul scaling 10 mul div setlinewidth
	/spacewidth ( ) stringwidth pop def
} bind def

/changefont {
	/fontheight exch def
	/fontslant exch def
	currentfont [
		1 0
		fontheight ptsize div fontslant sin mul fontslant cos div
		fontheight ptsize div
		0 0
	] makefont setfont
} bind def

/sf {f} bind def

/cf {
	dup length 2 idiv
	/entries exch def
	/chtab exch def
	/newfont exch def

	findfont dup length 1 add dict
	/newdict exch def
	{1 index /FID ne {newdict 3 1 roll put} {pop pop} ifelse} forall

	newdict /Metrics entries dict put
	newdict /Metrics get
	begin
		chtab aload pop
		1 1 entries {pop def} for
		newfont newdict definefont pop
	end
} bind def

%
% A few arrays used to adjust reference points and character widths in some
% of the printer resident fonts. If square roots are too high try changing
% the lines describing /radical and /radicalex to,
%
%	/radical	[0 -75 550 0]
%	/radicalex	[-50 -75 500 0]
%

/Sdefs [
	/bracketlefttp		[201 500]
	/bracketleftbt		[201 500]
	/bracketrighttp		[-81 380]
	/bracketrightbt		[-83 380]
	/bracketrightex		[220 -125 500 0]
	/radical		[0 0 550 0]
	/radicalex		[-50 0 500 0]
	/parenleftex		[-20 -170 0 0]
	/integral		[100 -50 500 0]
	/infinity		[10 -75 730 0]
] def

/S1defs [
	/underscore		[0 80 500 0]
	/endash			[7 90 650 0]
] def
%
% Tries to round clipping path dimensions, as stored in array pagebbox, so they
% match one of the known sizes in the papersizes array. Lower left coordinates
% are always set to 0.
%

/roundpagebbox {
    7 dict begin
	/papersizes [8.5 inch 11 inch 14 inch 17 inch] def

	/mappapersize {
		/val exch def
		/slop .5 inch def
		/diff slop def
		/j 0 def
		0 1 papersizes length 1 sub {
			/i exch def
			papersizes i get val sub abs
			dup diff le {/diff exch def /j i def} {pop} ifelse
		} for
		diff slop lt {papersizes j get} {val} ifelse
	} def

	pagebbox 0 0 put
	pagebbox 1 0 put
	pagebbox dup 2 get mappapersize 2 exch put
	pagebbox dup 3 get mappapersize 3 exch put
    end
} bind def

%%EndProlog
%%BeginSetup
mark
/linewidth 0.5 def
/xoffset 0 def
/yoffset 0 def
/#copies 1 store
/magnification 1 def
%%FormsPerPage: 1
/formsperpage 1 def

/landscape false def
/resolution 720 def
setup
2 setdecoding
%%EndSetup
%%Page: 609 1
/saveobj save def
mark
1 pagesetup
12 B f
(The File Motel:)2 814 1 2653 1220 t
(An Owner's Manual)2 1074 1 2523 1360 t
10 R f
(Andrew G. Hume)2 728 1 2696 1600 t
10 I f
(AT&T Bell Laboratories)2 1001 1 2559 1780 t
(Murray Hill, New Jersey 07974)4 1300 1 2410 1900 t
10 R f
(ABSTRACT)2798 2172 w
( system for)2 462(The File Motel is an incremental user-level \256le backup)8 2255 2 1360 2406 t
9 R f
(UNIX)4108 2406 w
10 S f
(\322)4333 2406 w
10 R f
(systems. The)1 564 1 4446 2406 t
( for over two years with three)6 1264(\256rst version of the File Motel has been in successful operation)10 2636 2 1110 2526 t
( version supported only Ninth Edition)5 1589( \256rst)1 195( The)1 227(sites supporting about 50 systems.)4 1426 4 1110 2646 t
9 R f
(UNIX)4584 2646 w
10 R f
(sys-)4849 2646 w
( The)1 225(tems, although with only modest inconvenience \256les could be saved from Sun 3 clients.)13 3675 2 1110 2766 t
(second version of the File Motel is a complete reworking of the original system, emphasizing)14 3900 1 1110 2886 t
( to most)2 339(easy portability)1 628 2 1110 3006 t
9 R f
(UNIX)2107 3006 w
10 R f
( \256les are stored in a machine-independent form; as)8 2082(systems. The)1 563 2 2365 3006 t
( on a MIPS 120/5 that)5 971(an example, I have recovered a directory onto a Sun 3 from a server)13 2929 2 1110 3126 t
(had been originally saved from a Cray X/MP)7 1863 1 1110 3246 t
10 S1 f
(\261)2973 3246 w
10 R f
( interfaces have)2 641( user and administrative)3 984(24. The)1 347 3 3038 3246 t
(been streamlined, based on experience in the \256eld.)7 2071 1 1110 3366 t
( such as the)3 511( of the modules,)3 689( Most)1 279(The system has been restructured to look like a kit.)9 2171 4 1360 3532 t
( As)1 190( interface routines.)2 787(database, networking and media code, have been isolated via simple)9 2923 3 1110 3652 t
(with a kit, you may not \256nd exactly what you want, but it should be easy to roll your own.)19 3756 1 1110 3772 t
10 B f
( Overview)1 443(1. An)1 269 2 720 4044 t
10 R f
( [1], a)2 305(This is a manual for the File Motel)7 1629 2 970 4256 t
(backup system for)2 784 1 720 4376 t
9 R f
(UNIX)1552 4376 w
10 R f
( File Motel)2 495(systems. The)1 581 2 1828 4376 t
( system servicing many)3 1022(consists of a central server)4 1162 2 720 4496 t
( always)1 319( server system is almost)4 1027( The)1 231(client systems.)1 607 4 720 4616 t
( Motel saves only the)4 915( File)1 195( The)1 227(also a client system.)3 847 4 720 4736 t
(\256les that change on any given client system, using a)9 2184 1 720 4856 t
( saved)1 282(database to record what versions have been)6 1902 2 720 4976 t
( normal usage patterns,)3 959( Under)1 319(for any particular \256le.)3 906 3 720 5096 t
(this is on the order of 1)6 999 1 720 5216 t
10 S1 f
(\261)1719 5216 w
10 R f
( the user \256les on the)5 867(5% of)1 253 2 1784 5216 t
( over slow net-)3 656( makes backup practical)3 1024(client. This)1 504 3 720 5336 t
(works to slow backup media.)4 1200 1 720 5456 t
(The daily routine in the File Motel starts)7 1934 1 970 5668 t
( when the clients send copies of any)7 1509(around midnight)1 675 2 720 5788 t
( \256les to the server machine.)5 1153(new or recently modi\256ed)3 1031 2 720 5908 t
(After receiving the \256les from all the clients, a)8 2184 1 720 6028 t
( \256les)1 204(separate processing step transforms the received)5 1980 2 720 6148 t
(into backup copies, which are then written to the)8 2184 1 720 6268 t
(backup media of your choice \(typically, WORM)6 2184 1 720 6388 t
( and recovery can be performed by)6 1533(disks\). Backup)1 651 2 720 6508 t
(anyone with the appropriate permissions; in general,)6 2184 1 720 6628 t
( administrative overhead other than fuss-)5 1728(there is no)2 456 2 720 6748 t
(ing with backup media.)3 962 1 720 6868 t
( may be a little clearer with)6 1260(This description)1 674 2 970 7080 t
( description includes)2 909( following)1 456( The)1 255(some details.)1 564 4 720 7200 t
( numbers from our Center's File Motel;)6 1654(some sample)1 530 2 3216 4044 t
( step is a client send-)5 880( \256rst)1 191( The)1 223(other sites will differ.)3 890 4 3216 4164 t
( con\256gured for)2 625( shell script)2 491( A)1 145(ing \256les to the server.)4 923 4 3216 4284 t
( a list of \(say 5000\) candidates)6 1364(the client generates)2 820 2 3216 4404 t
( all the \256les changed in the last)7 1473(for backup \(say,)2 711 2 3216 4524 t
( server which returns a)4 944( list is sent to the)5 726(week\). This)1 514 3 3216 4644 t
( need to be)3 543(list of the \256les \(say 900\) that really)7 1641 2 3216 4764 t
( to)1 113( of these \256les is then transmitted)6 1360( Each)1 268(backed up.)1 443 4 3216 4884 t
( together with a header \(which includes a)7 1776(the server)1 408 2 3216 5004 t
( is sent taking)3 583( average, about 15MB)3 920(checksum\). \(On)1 681 3 3216 5124 t
( is an acknowledgement)3 1055( There)1 321( minutes.\))1 431(about 20)1 377 4 3216 5244 t
( allows graceful)2 669(from the server after every \256le; this)6 1515 2 3216 5364 t
( problems, such as)3 813(termination when the server has)4 1371 2 3216 5484 t
( redundancy in the candi-)4 1070( The)1 227( space.)1 285(running out of)2 602 4 3216 5604 t
( tran-)1 224(date list allows non-critical clients to cope with)7 1960 2 3216 5724 t
( broken network\) without)3 1150(sient faults \(such as a)4 1034 2 3216 5844 t
( and)1 185(administrative intervention by ignoring the fault)5 1999 2 3216 5964 t
( client pro-)2 462( The)1 225( following night.)2 694(getting the \256les the)3 803 4 3216 6084 t
( by the server)3 711(cess is normally initiated either)4 1473 2 3216 6204 t
( by)1 146(machine or)1 468 2 3216 6324 t
10 I f
(cron)3876 6324 w
10 R f
( the same mechan-)3 808(\(8\). Exactly)1 525 2 4067 6324 t
( only)1 249(ism is used for user-initiated backups; the)6 1935 2 3216 6444 t
( system backup is executed by)5 1307(difference is that the)3 877 2 3216 6564 t
( \(and thus has access to all the \256les on)9 1613(the super-user)1 571 2 3216 6684 t
(the client system\).)2 746 1 3216 6804 t
( the clients are kept in receiv-)6 1246(The \256les sent by)3 688 2 3466 6960 t
( each processed)2 667(ing areas each of 32 subdirectories,)5 1517 2 3216 7080 t
( the program)2 616( First,)1 320(in turn.)1 341 3 3216 7200 t
10 I f
(sweep)4571 7200 w
10 R f
(deletes any)1 499 1 4901 7200 t
( 609)1 3721(Research Tenth Edition)2 959 2 720 7560 t
cleartomark
showpage
saveobj restore
%%EndPage: 609 1
%%Page: 610 2
/saveobj save def
mark
2 pagesetup
10 R f
(The File Motel: An Owner's Manual)5 1513 1 720 480 t
( a name)2 342(unnecessary \256les, assigns each backup copy)5 1842 2 720 840 t
( \256le's header\) and recalculates)4 1256(\(which is stored in the)4 928 2 720 960 t
( remaining \256les are fed to)5 1118( The)1 232(the \256le's checksum.)2 834 3 720 1080 t
10 I f
(dbupdate)720 1200 w
10 R f
(which deletes any unnecessary \256les and)5 1748 1 1156 1200 t
( in the database.)3 814(stores the version information)3 1370 2 720 1320 t
( moved to a staging)4 887(Finally, the surviving \256les are)4 1297 2 720 1440 t
(area for writing to the backup media.)6 1525 1 720 1560 t
( the backup copies to)4 935(The last step is writing)4 999 2 970 1719 t
( sup-)1 211( only medium currently)3 986( The)1 228(the backup media.)2 759 4 720 1839 t
( environment they)2 773( our)1 180( In)1 163(ported is a WORM disk.)4 1068 4 720 1959 t
( of their large capacity and)5 1256(are preferred because)2 928 2 720 2079 t
( get reliable jukeboxes \(automatic)4 1473(because you can)2 711 2 720 2199 t
( come in all sorts)4 747( jukeboxes)1 447( Optical)1 369(disk changers\).)1 621 4 720 2319 t
( our center has a SONY WDA 3000-10 with)8 1846(of sizes;)1 338 2 720 2439 t
( October)1 382(a total capacity of 164GB \(328GB after)6 1802 2 720 2559 t
(1989\).)720 2679 w
( File)1 217(There are many other programs in the)6 1717 2 970 2838 t
( intended for the user \(for example,)6 1644(Motel, some)1 540 2 720 2958 t
( the administrator)2 781(recovering \256les\), and others for)4 1403 2 720 3078 t
(\(usage statistics, backing up the database\).)5 1734 1 720 3198 t
(The rest of this manual is intended for the)8 1934 1 970 3357 t
( 2 details some)3 648( Section)1 375(caretaker of the File Motel.)4 1161 3 720 3477 t
(of the peculiar aspects of the File Motel that have)9 2184 1 720 3597 t
( you can survive)3 771(caused problems in the past; if)5 1413 2 720 3717 t
( the File Motel)3 706(these, then installing and running)4 1478 2 720 3837 t
( are incompatibilities, then)3 1099( there)1 236( If)1 136(ought to be easy.)3 713 4 720 3957 t
( Motel will require \(perhaps sub-)5 1437(installing the File)2 747 2 720 4077 t
( uses many small)3 797( File Motel)2 521( The)1 251(stantial\) work.)1 615 4 720 4197 t
( need to \256gure out what)5 1036(single-purpose tools; if you)3 1148 2 720 4317 t
( be\), these)2 453(is going on \(or wrong, as the case may)8 1731 2 720 4437 t
( 4 and 5)3 385( Sections)1 418(tools are described in Section 3.)5 1381 3 720 4557 t
( instructions for installing a client)5 1482(are step by step)3 702 2 720 4677 t
( Section 6 ela-)3 673( Finally,)1 400( server respectively.)2 866(and a)1 245 4 720 4797 t
(borates on media management.)3 1266 1 720 4917 t
10 B f
( Things You Should Know)4 1164(2. Some)1 374 2 720 5166 t
10 R f
( describes some of the assump-)5 1415(This section)1 519 2 970 5325 t
( the File Motel)3 661(tions underlying the construction of)4 1523 2 720 5445 t
( of these assumptions have caused)5 1522(software. Most)1 662 2 720 5565 t
( to systems less hospitable than)5 1353(problems in porting)2 831 2 720 5685 t
(10th Edition)1 506 1 720 5805 t
9 R f
(UNIX)1256 5805 w
10 R f
(\(or V10 for short\).)3 761 1 1514 5805 t
13 R f
(\267)852 5964 w
10 R f
(Each server has one global name space for all)8 1934 1 970 5964 t
( \256le)1 167( The)1 227( from all the clients.)4 858(the \256les saved)2 596 4 970 6084 t
10 I f
(z)2857 6084 w
10 R f
(from machine)1 575 1 970 6204 t
10 I f
(mach)1588 6204 w
10 R f
( name)1 260(is stored under the)3 789 2 1855 6204 t
10 I f
(/n/mach/z)970 6324 w
10 R f
( so happens that this is how V10)7 1381(. It)1 156 2 1367 6324 t
( mounted)1 398(networked \256le systems are normally)4 1536 2 970 6444 t
( \256le references actually go)4 1228(and in fact, all)3 706 2 970 6564 t
( other sys-)2 490( For)1 234(through this network name.)3 1210 3 970 6684 t
( de\256ne the)2 452(tems, you should)2 719 2 970 6804 t
10 CW f
(-DNO_NETNAME)2184 6804 w
10 R f
(switch as described in section 5.)5 1327 1 970 6924 t
13 R f
(\267)852 7083 w
10 R f
(All client)1 397 1 970 7083 t
10 S1 f
(\261)1367 7083 w
10 R f
( uses a uni-)3 521(service communication)1 951 2 1432 7083 t
( is, a system)3 555( That)1 263(form networking interface.)2 1116 3 970 7203 t
( and)1 190(invokes a service on the remote machine)6 1744 2 3466 840 t
( pair of \256le descriptors attached to the)7 1679(gets a)1 255 2 3466 960 t
( Both)1 322( service.)1 401(input and output of that)4 1211 3 3466 1080 t
( IPC are)2 373(Berkeley-style sockets and V10-style)3 1561 2 3466 1200 t
( the case of a single system)6 1285(supported. For)1 649 2 3466 1320 t
( and client and has no net-)6 1108(that is both a server)4 826 2 3466 1440 t
( an execution)2 574(working, you will have to write)5 1360 2 3466 1560 t
( the desired ser-)3 664(service that constructs pipes to)4 1270 2 3466 1680 t
( possible to provide this)4 1032( that it is)3 402(vices. Note)1 500 3 3466 1800 t
( have)1 229( you)1 224( all the networking)3 800(interface even if)2 681 4 3466 1920 t
( as)1 119(is a user program \(such)4 971 2 3466 2040 t
10 I f
(rx)4592 2040 w
10 R f
(or)4719 2040 w
10 I f
(rsh)4838 2040 w
10 R f
(\) that exe-)2 426 1 4974 2040 t
(cutes a program on another machine.)5 1514 1 3466 2160 t
13 R f
(\267)3348 2328 w
10 R f
(It must be possible to nominate the user that)8 1934 1 3466 2328 t
( reg-)1 194( run as a)3 365( Most)1 274(the remote service runs as.)4 1101 4 3466 2448 t
(ular user, say)2 575 1 3466 2568 t
10 I f
(fmdaemon)4089 2568 w
10 R f
( some must run)3 686(, but)1 201 2 4513 2568 t
( and on V10 systems, one must)6 1415(as superuser)1 519 2 3466 2688 t
(run as)1 249 1 3466 2808 t
10 I f
(bin)3748 2808 w
10 R f
(.)3884 2808 w
13 R f
(\267)3348 2976 w
10 R f
( is reasonably portable; with the)5 1519(The code)1 415 2 3466 2976 t
( \256les it runs on a Cray)6 1063(canned con\256guration)1 871 2 3466 3096 t
( 11/750, Microvax)2 785(X-MP/24 \(UNICOS\), VAX)2 1149 2 3466 3216 t
( \(V10, Ultrix,)2 660(II, 8550, 8600 and 11/780)4 1274 2 3466 3336 t
( 4.0\), MIPS M120/5,)3 906(4.3BSD\), Sun 3 \(SunOs)3 1028 2 3466 3456 t
( RISC/os 4.0\).)2 695(M2000 \(UMIPS 3.0, 3.10,)3 1239 2 3466 3576 t
( code, notably Ken Thompson's)4 1395(Some of the)2 539 2 3466 3696 t
( of)1 122(new version)1 500 2 3466 3816 t
10 CW f
(doprint)4127 3816 w
10 R f
(, makes assumptions)2 853 1 4547 3816 t
( far, the code)3 550( So)1 174( lists.)1 222(about variable argument)2 988 4 3466 3936 t
( to work on all the systems we)7 1360(has continued)1 574 2 3466 4056 t
( can't optimise on the)4 938(have tried \(although we)3 996 2 3466 4176 t
( hardware)1 411(MIPS\) but in this world of perverse)6 1523 2 3466 4296 t
(and compilers, you may not be so lucky.)7 1674 1 3466 4416 t
13 R f
(\267)3348 4584 w
10 R f
( no particular byte-ordering)3 1166(The code assumes)2 768 2 3466 4584 t
( that there is an integer type)6 1235(but does assume)2 699 2 3466 4704 t
( large, the programs)3 828( and)1 178( By)1 184(of at least 32 bits.)4 744 4 3466 4824 t
(allocate all data areas dynamically; whenever)5 1934 1 3466 4944 t
( space for)2 495(there is choice, programs trade)4 1439 2 3466 5064 t
( be at least 24)4 633(smaller runtime, so there must)4 1301 2 3466 5184 t
( have a 32 bit)4 710( you)1 217( If)1 166(bits of data space.)3 841 4 3466 5304 t
( 16 bit ints, you will have)6 1176(machine but have)2 758 2 3466 5424 t
(trouble \(perhaps)1 659 1 3466 5544 t
10 I f
(lint)4158 5544 w
10 R f
(will help\).)1 419 1 4333 5544 t
13 R f
(\267)3348 5712 w
10 R f
( medium can)2 592(It is assumed that the backup)5 1342 2 3466 5712 t
( and practically,)2 670(hold at least one backup copy)5 1264 2 3466 5832 t
( is)1 121( This)1 265( hold at least one volume.)5 1172(it should)1 376 4 3466 5952 t
( by default; if you have smaller)6 1404(about 20MB)1 530 2 3466 6072 t
( arrange better,)2 728(backup media and cannot)3 1206 2 3466 6192 t
( \320 it is a constant)5 895(change the volume size)3 1039 2 3466 6312 t
(de\256ned in)1 405 1 3466 6432 t
10 CW f
(fm/sweep.c)3904 6432 w
10 R f
(.)4504 6432 w
13 R f
(\267)3348 6600 w
10 R f
( \256le having a)3 570(The File Motel depends on each)5 1364 2 3466 6600 t
( to cause prob-)3 689( continue)1 403( This)1 270(unique name.)1 572 4 3466 6720 t
( the presence of symbolic)4 1096(lems, particularly in)2 838 2 3466 6840 t
( a system I use)4 824( example, on)2 633(links. For)1 477 3 3466 6960 t
10 CW f
(/usr/andrew)3466 7080 w
10 R f
(is a symbolic link)3 1114 1 4286 7080 t
10 CW f
(/usr2/guest/andrew)3466 7200 w
10 R f
( right thing to)3 599(. The)1 255 2 4546 7200 t
( Programmer's Manual)2 942(610 UNIX)1 3738 2 720 7560 t
cleartomark
showpage
saveobj restore
%%EndPage: 610 2
%%Page: 611 3
/saveobj save def
mark
3 pagesetup
10 R f
(The File Motel: An Owner's Manual)5 1513 1 3887 480 t
(do is to save \256les under)5 1056 1 970 840 t
10 CW f
(/usr/andrew)2074 840 w
10 R f
(\(so)2782 840 w
( from \256lesystem to)3 846(that you can move them)4 1088 2 970 960 t
( the user)2 360( Yet,)1 238( name\).)1 310(\256lesystem and keep their)3 1026 4 970 1080 t
( this name; if they do a)6 1036(may not be aware of)4 898 2 970 1200 t
10 I f
(pwd)970 1320 w
10 R f
( wrong)1 324(to \256nd out, they will get the)6 1367 2 1213 1320 t
(answer.)970 1440 w
10 B f
( Detailed Description)2 915(3. A)1 213 2 720 2010 t
10 R f
( the File Motel can be function-)6 1373(The action in)2 561 2 970 2265 t
( client selecting and)3 916(ally divided into four areas:)4 1268 2 720 2385 t
( the server processing the)4 1078(sending \256les to the server,)4 1106 2 720 2505 t
(client \256les onto backup media, client recovering \256les)7 2184 1 720 2625 t
( an assortment of adminis-)4 1116(back from the server, and)4 1068 2 720 2745 t
(trative functions.)1 685 1 720 2865 t
( the File Motel)3 667(Programs and scripts used by)4 1267 2 970 3120 t
( three places:)2 606(live in)1 294 2 720 3240 t
10 CW f
(/usr/bin/backup)1685 3240 w
10 R f
(is the)1 254 1 2650 3240 t
(user interface,)1 601 1 720 3360 t
10 CW f
(/usr/lib/filemotel)1383 3360 w
10 R f
(holds all)1 379 1 2525 3360 t
(the programs and scripts used by clients, and)7 2184 1 720 3480 t
10 CW f
(/usr/filemotel/bin)720 3600 w
10 R f
( server-speci\256c)1 643(holds the)1 400 2 1861 3600 t
( are the conventional names \320)5 1444(programs. These)1 740 2 720 3720 t
( of this)2 328( Because)1 415( to taste.)2 386(they can be recon\256gured)3 1055 4 720 3840 t
(and their length, these abbreviations will be used in)8 2184 1 720 3960 t
(the following text:)2 755 1 720 4080 t
10 CW f
($FM /usr/filemotel)1 1170 1 1107 4425 t
($FB /usr/filemotel/bin)1 1410 1 1107 4545 t
($FL /usr/lib/filemotel)1 1410 1 1107 4665 t
10 B f
( Sends Files to the Server)5 1114(3.1. Client)1 477 2 720 5235 t
10 R f
(The controlling script here is)4 1934 1 970 5490 t
10 CW f
($FL/doclient)720 5610 w
10 R f
(:)1440 5610 w
8 CW f
(#!/bin/sh)1008 5925 w
($FL/sel | $FL/act)2 816 1 1008 6015 t
10 R f
(The selection script)2 850 1 720 6360 t
10 I f
(sel)1629 6360 w
10 R f
( generate a list of)4 827(has to)1 270 2 1807 6360 t
( can use any tools available)5 1160( You)1 244(absolute \256lenames.)1 780 3 720 6480 t
(to you; the File Motel supplies the program)7 1876 1 720 6600 t
10 I f
(fcheck)2642 6600 w
10 R f
(which is rather more ef\256cient than)5 1482 1 720 6720 t
10 I f
(\256nd)2249 6720 w
10 R f
( fol-)1 190(\(1\) and)1 307 2 2407 6720 t
( is to)2 237( This)1 257( are arguments.)2 654(lows symbolic links that)3 1036 4 720 6840 t
(help clients save \256les as)4 1200 1 720 6960 t
10 CW f
(/usr/andrew/...)2004 6960 w
10 R f
(rather than the less than informative)5 2184 1 720 7080 t
10 CW f
(/usr2/guest/andrew/...)720 7200 w
10 R f
( small)1 250(. A)1 163 2 2040 7200 t
10 I f
(sel)2486 7200 w
10 R f
(\256le is)1 228 1 2638 7200 t
8 CW f
(/usr/lib/filemotel/fcheck 512 7 /etc /usr/* |)5 2160 1 3216 810 t
(sed -e '/\\.o$/d)2 720 1 3216 900 t
(/\\/a\\.out$/d)3216 990 w
(/\\/core$/d)3216 1080 w
(/\\/foo$/d)3216 1170 w
(/^\\/usr\\/tmp\\//d)3216 1260 w
(/^\\/usr\\/spool\\//d')3216 1350 w
(cat <<EOF)1 432 1 3216 1440 t
(/unix)3216 1530 w
(EOF)3216 1620 w
10 R f
(The script)1 413 1 3466 1819 t
10 I f
(act)3915 1819 w
10 R f
( a straightforward way.)3 961(works in)1 358 2 4081 1819 t
( the input)2 436(First, the \256lenames are transformed into)5 1748 2 3216 1939 t
(format for)1 447 1 3216 2059 t
10 I f
(missing)3729 2059 w
10 R f
(by the program)2 692 1 4109 2059 t
10 I f
(iprint)4867 2059 w
10 R f
(. This)1 302 1 5098 2059 t
(prepends)3216 2179 w
10 CW f
(/n/)3615 2179 w
10 I f
(machine)3795 2179 w
10 R f
(to the \256lename \(unless this is)5 1229 1 4171 2179 t
( and appends the inode change time)6 1605(already there\))1 579 2 3216 2299 t
( an input)2 446( is a convention that)4 1001( There)1 339(and size.)1 398 4 3216 2419 t
(\256lename starting with a)3 983 1 3216 2539 t
10 CW f
(//)4238 2539 w
10 R f
( to be)2 252(is a symbolic link)3 751 2 4397 2539 t
(followed \(that is, use)3 904 1 3216 2659 t
10 I f
(stat)4167 2659 w
10 R f
( than)1 218(\(2\) rather)1 395 2 4320 2659 t
10 I f
(lstat)4979 2659 w
10 R f
(\(2\) to)1 240 1 5160 2659 t
( carried around so)3 750( size is)2 292( The)1 223(get the time and size\).)4 919 4 3216 2779 t
( choose a \256le because it is small and it)9 1727(that if you)2 457 2 3216 2899 t
( while you are asking about it,)6 1387(grows dramatically)1 797 2 3216 3019 t
( \(although this is not done)5 1127(you can reject it later on)5 1057 2 3216 3139 t
( cares yet\).)2 460(now because no one)3 842 2 3216 3259 t
10 I f
(Missing)4589 3259 w
10 R f
(takes these)1 448 1 4952 3259 t
( ships them to the corresponding server)6 1732(names and)1 452 2 3216 3379 t
10 I f
(missing)3216 3499 w
10 S f
(_)3522 3499 w
10 R f
( for a ser-)3 429( \(Servers)1 405( server machine.)2 686(on the)1 261 4 3619 3499 t
(vice)3216 3619 w
10 CW f
(abc)3437 3619 w
10 R f
(are called)1 413 1 3672 3619 t
10 CW f
(abc_)4139 3619 w
10 R f
(\).)4379 3619 w
10 I f
(Missing)4524 3619 w
10 S f
(_)4841 3619 w
10 R f
(checks the)1 447 1 4953 3619 t
( the database and sends)4 1107(name,time tuples against)2 1077 2 3216 3739 t
( that are newer than the entry in the)8 1589(back the lines)2 595 2 3216 3859 t
( in both directions are)4 1119(database. Transmissions)1 1065 2 3216 3979 t
( to standard)2 528(checksummed; any errors are reported)4 1656 2 3216 4099 t
( also logged in the log \256le on the server)9 1660(error and are)2 524 2 3216 4219 t
(machine.)3216 4339 w
(The results from)2 798 1 3466 4506 t
10 I f
(missing)4358 4506 w
10 R f
(are stored in)2 633 1 4767 4506 t
10 CW f
($FL/files.)3216 4626 w
10 I f
(day)3816 4626 w
10 R f
( are given to)3 529(. They)1 299 2 3960 4626 t
10 I f
(fmpush)4824 4626 w
10 R f
(which)5156 4626 w
( the backup system.)3 818(actually pushes them to)3 968 2 3216 4746 t
10 I f
(Fmpush)5070 4746 w
10 R f
( name argument for logging pur-)5 1376(also takes a system)3 808 2 3216 4866 t
( any errors,)2 507( there are)2 424(poses. If)1 398 3 3216 4986 t
10 I f
(fmpush)4598 4986 w
10 R f
(reports the)1 452 1 4948 4986 t
( This)1 280( the number of \256les transmitted.)5 1497(error and)1 407 3 3216 5106 t
(allows the push to be restarted ef\256ciently:)6 1718 1 3216 5226 t
8 CW f
($ pwd)1 240 1 3504 5395 t
($FL)3504 5485 w
($ fmpush wild < files.Tue)4 1200 1 3504 5575 t
(EOF after 2713 files sent.)4 1248 1 3504 5665 t
($ sed 1,2713d files.Tue | fmpush wild)6 1776 1 3504 5755 t
10 R f
( user)1 212(Any diagnostics are mailed to the)5 1440 2 3216 5954 t
10 I f
(backup)4914 5954 w
10 R f
(and)5256 5954 w
( in)1 157(also kept)1 413 2 3216 6074 t
10 CW f
($FL/files.)3865 6074 w
10 I f
(day)4465 6074 w
10 CW f
(.sho)4609 6074 w
10 R f
( is not)2 353(. It)1 198 2 4849 6074 t
( around after they have)4 991(necessary to keep these \256les)4 1193 2 3216 6194 t
( but they are relatively small and often)7 1756(been used)1 428 2 3216 6314 t
( who normally saves 100)4 1035(useful; for example, a client)4 1149 2 3216 6434 t
( \256les \320 you)3 555(or so \256les suddenly sends you 10,000)6 1629 2 3216 6554 t
( that client and check what the \256les)7 1469(can quickly go to)3 715 2 3216 6674 t
( possible, diagnostics are also logged on)6 1661(were. When)1 523 2 3216 6794 t
(the backup system.)2 779 1 3216 6914 t
( symbolic links and direc-)4 1154(Only regular \256les,)2 780 2 3466 7081 t
( saved; all other \256les \(such)5 1138(tories have their contents)3 1046 2 3216 7201 t
( 611)1 3721(Research Tenth Edition)2 959 2 720 7560 t
cleartomark
showpage
saveobj restore
%%EndPage: 611 3
%%Page: 612 4
/saveobj save def
mark
4 pagesetup
10 R f
(The File Motel: An Owner's Manual)5 1513 1 720 480 t
(as devices\) just have their)4 1083 1 720 840 t
10 I f
(stat)1841 840 w
10 R f
( To)1 183( saved.)1 291(\(2\) buffers)1 436 3 1994 840 t
( content of a)3 616(preserve machine independence, the)3 1568 2 720 960 t
( element)1 350(directory is saved as a list of null-terminated)7 1834 2 720 1080 t
( the server to be)4 709( removes the need for)4 940(names. This)1 535 3 720 1200 t
( structure, although)2 810(able to guess a client's directory)5 1374 2 720 1320 t
( of subtle information)3 953(it does lose a small amount)5 1231 2 720 1440 t
(contained in the freed slots of the directory.)7 1797 1 720 1560 t
10 B f
( Processes Client's Files)3 1036(3.2. Server)1 498 2 720 1844 t
10 R f
(Received \256les are processed by the script)6 1934 1 970 2013 t
10 CW f
($FL/munge)720 2133 w
10 R f
( processing is decoupled from)4 1346(. This)1 298 2 1260 2133 t
(either receiving or restoring client \256les; for example,)7 2184 1 720 2253 t
( process \256les while receiving them.)5 1619(it is safe to)3 565 2 720 2373 t
(Munging is typically started by)4 1350 1 720 2493 t
10 I f
(cron)2120 2493 w
10 R f
( you can)2 390(, but)1 203 2 2311 2493 t
(also cause)1 430 1 720 2613 t
10 I f
(rcv)1197 2613 w
10 R f
(to invoke)1 397 1 1379 2613 t
10 I f
(munge)1823 2613 w
10 R f
(automatically, and)1 760 1 2144 2613 t
(you can invoke)2 722 1 720 2733 t
10 I f
(munge)1524 2733 w
10 R f
(manually by executing)2 1024 1 1880 2733 t
10 CW f
($FL/callmunge)720 2853 w
10 R f
(.)1500 2853 w
(Regardless of how it is called,)5 1339 1 970 3022 t
10 I f
(munge)2361 3022 w
10 R f
(scans)2688 3022 w
( subdirectories in each of the receiv-)6 1517(the 32 receiving)2 667 2 720 3142 t
(ing areas in)2 504 1 720 3262 t
10 CW f
($FM/adm/rcvdirs)1271 3262 w
10 R f
(looking for \256les)2 685 1 2219 3262 t
( a program whose)3 751( it \256nds any, it calls)5 854( If)1 138(to process.)1 441 4 720 3382 t
( supplied as)2 514(name is)1 328 2 720 3502 t
10 CW f
($PROCPERM)1608 3502 w
10 R f
(to copy the \256nal)3 710 1 2194 3502 t
( this)1 190( repeats)1 328( It)1 140(copies to the media of your choice.)6 1526 4 720 3622 t
( nothing to do during the last)6 1360(scan until it found)3 824 2 720 3742 t
(scan.)720 3862 w
( within a subdirectory is simple.)5 1473(The action)1 461 2 970 4031 t
10 CW f
($FB/sweep)720 4151 w
10 R f
(looks for \256les with mode)4 1056 1 1299 4151 t
10 CW f
(0)2394 4151 w
10 R f
(,)2454 4151 w
10 CW f
(0400)2518 4151 w
10 R f
(, or)1 146 1 2758 4151 t
10 CW f
(0600)720 4271 w
10 R f
(. Mode)1 325 1 960 4271 t
10 CW f
(0)1319 4271 w
10 R f
( being received)2 629(\256les are \256les that are)4 862 2 1413 4271 t
(\()720 4391 w
10 I f
(rcv)753 4391 w
10 R f
(marks a \256le as done by changing its mode to)9 1977 1 927 4391 t
10 CW f
(0600)720 4511 w
10 R f
(\) and are ignored unless it is hasn't been)8 1944 1 960 4511 t
( this latter case,)3 645( In)1 149(modi\256ed within the last 12 hours.)5 1390 3 720 4631 t
( as stale \(almost always a network con-)7 1643(it is regarded)2 541 2 720 4751 t
( Mode)1 324( and unlinked.)2 635(nection was dropped\))2 927 3 720 4871 t
10 CW f
(0400)2664 4871 w
10 R f
( been already processed by)4 1154(\256les have)1 399 2 720 4991 t
10 I f
(sweep)2318 4991 w
10 R f
(but for)1 289 1 2615 4991 t
( running out of space\))4 1048(some reason \(most often,)3 1136 2 720 5111 t
( Mode)1 328( area.)1 252(weren't copied to the backup)4 1302 3 720 5231 t
10 CW f
(0600)2664 5231 w
10 R f
( copy name and after)4 976(\256les are assigned a backup)4 1208 2 720 5351 t
( checksum are changed to mode)5 1482(recalculating the)1 702 2 720 5471 t
10 CW f
(0400)720 5591 w
10 R f
(.)960 5591 w
10 I f
(Sweep)1056 5591 w
10 R f
( names of all the \256les ready)6 1170(emits the)1 377 2 1357 5591 t
( is saved in)3 492(to be copied to the backup area and this)8 1692 2 720 5711 t
(a \256le.)1 237 1 720 5831 t
10 I f
(Munge)1030 5831 w
10 R f
( needed directories in)3 898(then makes any)2 651 2 1355 5831 t
( area that don't exist.)4 940(the backup)1 459 2 720 5951 t
10 CW f
($FB/fmmv)2202 5951 w
10 R f
(then)2732 5951 w
( backup area.)2 560(moves all the \256les to be copied to the)8 1624 2 720 6071 t
( the database with information from)5 1524(We then update)2 660 2 720 6191 t
(the \256les we just copied.)4 973 1 720 6311 t
(Updating the database is a two part process.)7 1934 1 970 6480 t
(Run)720 6600 w
10 CW f
($FB/updatef)936 6600 w
10 R f
( program)1 386(on the \256les \(use the)4 873 2 1645 6600 t
10 I f
(updatew)720 6720 w
10 R f
(for \256les on the WORM\) and then feed the)8 1797 1 1107 6720 t
(output to)1 368 1 720 6840 t
10 CW f
($FB/dbupdate)1122 6840 w
10 R f
( this way, we guaran-)4 888(. In)1 174 2 1842 6840 t
(tee that the database is purely a function of the)9 2184 1 720 6960 t
( lost between the)3 713(backed up \256les \(assuming none get)5 1471 2 720 7080 t
( input to)2 386( The)1 239(backup area and the backup media\).)5 1559 3 720 7200 t
10 I f
(dbupdate)3216 840 w
10 R f
( of backup \256le)3 691(is \(roughly\) a sequence)3 1048 2 3661 840 t
(headers and contents of backed up directories.)6 2184 1 3216 960 t
10 I f
(Dbupdate)3216 1080 w
10 R f
( \(described)1 467(updates the various databases)3 1262 2 3671 1080 t
( sometimes tries to unlink the backup)6 1704(below\) and)1 480 2 3216 1200 t
( the same)2 401( happens when two copies of)5 1221(copies. \(This)1 562 3 3216 1320 t
( receiving subdirectory.)2 993(\256le are in the same)4 846 2 3216 1440 t
10 I f
(Sweep)5137 1440 w
10 R f
( but when)2 456(happily copies both to the backup area)6 1728 2 3216 1560 t
10 I f
(dbupdate)3216 1680 w
10 R f
( update the main database for the)6 1451(goes to)1 307 2 3642 1680 t
( discovers it already has this copy)6 1522(second copy, it)2 662 2 3216 1800 t
( if)1 109( doesn't care)2 553( It)1 141(and so unlinks the second copy.)5 1381 4 3216 1920 t
( an attempt to be)4 722(the unlink fails because this is just)6 1462 2 3216 2040 t
( can fail)2 367(space ef\256cient and in any case, the unlink)7 1817 2 3216 2160 t
( has already been committed to the)6 1542(only if the \256le)3 642 2 3216 2280 t
(backup media.\))1 636 1 3216 2400 t
10 I f
(Dbupdate)3931 2400 w
10 R f
(also appends accounting)2 1020 1 4380 2400 t
( each \256le, containing the time)5 1322(statistics records for)2 862 2 3216 2520 t
( the size, the owner and the sys-)7 1401(the \256le was saved,)3 783 2 3216 2640 t
(tem name, to the \256le)4 851 1 3216 2760 t
10 CW f
($FM/stat.log)4100 2760 w
10 R f
(.)4820 2760 w
(After)3466 2929 w
10 I f
(munge)3726 2929 w
10 R f
( the receive)2 511(is \256nished scanning)2 839 2 4050 2929 t
( records generated by)3 894(areas, it processes the statistics)4 1290 2 3216 3049 t
10 I f
(dbupdate)3216 3169 w
10 R f
(by calling)1 413 1 3637 3169 t
10 CW f
($FB/procstats)4091 3169 w
10 R f
( reads)1 252(. This)1 277 2 4871 3169 t
( truncates\))1 431(\(and then)1 388 2 3216 3289 t
10 CW f
($FM/stat.log)4073 3289 w
10 R f
(and adds new)2 569 1 4831 3289 t
(records to the \256les)3 912 1 3216 3409 t
10 CW f
($FM/stat/)4213 3409 w
10 I f
(system)4753 3409 w
10 R f
(. These)1 381 1 5019 3409 t
( machine independent format and have)5 1614(records are in)2 570 2 3216 3529 t
( to refer to all the \256les per user/day)8 1573(been collapsed)1 611 2 3216 3649 t
( this compressed format, the)4 1237( in)1 131(combination. Even)1 816 3 3216 3769 t
(statistics records would grow without bound.)5 2184 1 3216 3889 t
(Accordingly,)3216 4009 w
10 I f
(munge)3828 4009 w
10 R f
(calls)4190 4009 w
10 CW f
(procstats -c)1 774 1 4461 4009 t
10 R f
(to)5322 4009 w
( older than 30)3 579(further collapse together all the records)5 1605 2 3216 4129 t
( number 30 comes from the)5 1151( \(The)1 256(days for each user.)3 777 3 3216 4249 t
(only program that looks at these statistics,)6 1782 1 3216 4369 t
10 CW f
(backup)5040 4369 w
(stats)3216 4489 w
10 R f
(.\))3516 4489 w
(Throughout its work,)2 863 1 3466 4658 t
10 I f
(munge)4363 4658 w
10 R f
(checks to see if it)4 729 1 4671 4658 t
( guard \256le;)2 449(should exit by checking the existence of a)7 1735 2 3216 4778 t
(this is created by)3 698 1 3216 4898 t
10 CW f
($FB/stopmunge)3947 4898 w
10 R f
(.)4727 4898 w
10 B f
( Databases on the Server)4 1086(3.3. The)1 383 2 3216 5182 t
10 R f
( the server,)2 488(There are three databases kept on)5 1446 2 3466 5351 t
(all conventionally kept in)3 1187 1 3216 5471 t
10 CW f
($FM/db)4484 5471 w
10 R f
( \256rst,)1 262(. The)1 294 2 4844 5471 t
10 CW f
(filemap)3216 5591 w
10 R f
( and only required database; it)5 1251(, is the main)3 513 2 3636 5591 t
( from \256lename to last modify)5 1254(contains the mappings)2 930 2 3216 5711 t
( to)1 152(date and from \(\256lename, modify date\) tuple)6 2032 2 3216 5831 t
( second,)1 355( The)1 241(backup copy name.)2 829 3 3216 5951 t
10 CW f
(dir)4694 5951 w
10 R f
(, is optional)2 526 1 4874 5951 t
( tuples to their)3 683(and maps \(directory, modify date\))4 1501 2 3216 6071 t
( is used to make recovery of \256le trees go)9 1697(contents. It)1 487 2 3216 6191 t
( third,)1 258( The)1 232(\(much\) faster.)1 578 3 3216 6311 t
10 CW f
(fs)4328 6311 w
10 R f
( maps)1 256(, is optional and)3 696 2 4448 6311 t
(\(\256lename, modify date\) tuples to their)5 1630 1 3216 6431 t
10 I f
(stat)4893 6431 w
10 R f
(buffers.)5093 6431 w
(It is used to implement the backup \256le system.)8 1922 1 3216 6551 t
( implementation of these databases)4 1462(The default)1 472 2 3466 6720 t
( Weinberger's compressed B-trees \(see)4 1821(is Peter)1 363 2 3216 6840 t
10 I f
(cbt)3216 6960 w
10 R f
( compression refers to eliding common)5 1622(\(1\)\). \(The)1 432 2 3346 6960 t
( successive keys; it does very well on the)8 1746(pre\256xes of)1 438 2 3216 7080 t
( The)1 236( the File Motel.\))3 719(pathnames used by)2 804 3 3216 7200 t
10 I f
(cbt)5023 7200 w
10 R f
(data-)5201 7200 w
( Programmer's Manual)2 942(612 UNIX)1 3738 2 720 7560 t
cleartomark
showpage
saveobj restore
%%EndPage: 612 4
%%Page: 613 5
/saveobj save def
mark
5 pagesetup
10 R f
(The File Motel: An Owner's Manual)5 1513 1 3887 480 t
(base)720 840 w
10 I f
(db)946 840 w
10 R f
(consists of two \256les,)3 889 1 1103 840 t
10 I f
(db)2040 840 w
10 CW f
(.T)2140 840 w
10 R f
(\(the tree part\))2 588 1 2316 840 t
(and)720 960 w
10 I f
(db)897 960 w
10 CW f
(.F)997 960 w
10 R f
( the)1 155( As)1 177(\(the data part\).)2 600 3 1158 960 t
10 I f
(cbt)2123 960 w
10 R f
(routines do not)2 618 1 2286 960 t
(reclaim space, the)2 735 1 720 1080 t
10 CW f
(.T)1489 1080 w
10 R f
(\256le can start growing at a very)6 1262 1 1642 1080 t
( four levels\).)2 573(fast rate when the tree is large \(say)7 1611 2 720 1200 t
( so there is)3 511(This has proved to be a real nuisance)7 1673 2 720 1320 t
( of the)2 317(considerable support for periodic squashing)4 1867 2 720 1440 t
(database \(which reclaims space by rebuilding the)6 2184 1 720 1560 t
( the)1 161(database\) and for supporting)3 1178 2 720 1680 t
10 I f
(\256lemap)2098 1680 w
10 R f
(database as)1 465 1 2439 1680 t
(a collection of separate databases.)4 1386 1 720 1800 t
( is intended to be used in the follow-)8 1540(The latter)1 394 2 970 2071 t
( \256le)1 163( The)1 223(ing way.)1 354 3 720 2191 t
10 CW f
($FM/db/filemap)1495 2191 w
10 R f
(is always the)2 534 1 2370 2191 t
(current)720 2311 w
10 I f
(\256lemap)1178 2311 w
10 R f
( the \256le)2 604(database. If)1 644 2 1656 2311 t
10 CW f
($FM/db/filemaplist)720 2431 w
10 R f
( taken as a list)4 614(exists, it is)2 452 2 1838 2431 t
( one per line in oldest to newest)7 1394(of database names,)2 790 2 720 2551 t
(order, to be used in addition to)6 1284 1 720 2671 t
10 CW f
($FM/db/filemap)2039 2671 w
10 R f
(.)2879 2671 w
( our site,)2 369( At)1 168(These are searched only, never updated.)5 1647 3 720 2791 t
( about every)2 535(we produce one of these databases for)6 1649 2 720 2911 t
(15)720 3031 w
10 S1 f
(\261)820 3031 w
10 R f
(16GB of backup \256les.)3 901 1 885 3031 t
10 B f
( Sends Files to the Client)5 1093(3.4. Server)1 498 2 720 3657 t
10 R f
( central)1 339(All requests for \256les go through a)6 1595 2 970 3928 t
(server)720 4048 w
10 CW f
($FB/fetch_)1017 4048 w
10 R f
( program simply farms)3 997(. This)1 290 2 1617 4048 t
(out work to other programs.)4 1166 1 720 4168 t
10 I f
(Fetchf)1956 4168 w
10 R f
( \256nd)1 194(attempts to)1 454 2 2256 4168 t
( are still under)3 712(\256les that)1 389 2 720 4288 t
10 CW f
($FM/v)1892 4288 w
10 R f
( with)1 249(. Systems)1 463 2 2192 4288 t
( storage can leave the backup copies)6 1565(plenty of mass)2 619 2 720 4408 t
( the \256les)2 391( For)1 223(online and things will go quite fast.)6 1570 3 720 4528 t
(that)720 4648 w
10 I f
(fetchf)977 4648 w
10 R f
(can't \256nd,)1 488 1 1315 4648 t
10 I f
(fetch)1911 4648 w
10 S f
(_)2105 4648 w
10 R f
(looks in the)2 633 1 2271 4648 t
(con\256guration \256le \()2 846 1 720 4768 t
10 CW f
($FL/conf)1566 4768 w
10 R f
( determine the)2 671(\) to)1 187 2 2046 4768 t
(backup media \(say)2 818 1 720 4888 t
10 CW f
(j)1598 4888 w
10 R f
( calls)1 244( then)1 232( It)1 154(for jukebox\).)1 556 4 1718 4888 t
10 CW f
($FB/fetchj)720 5008 w
10 R f
( If)1 163( \256lenames.)1 472(with the appropriate)2 884 3 1385 5008 t
( you should use)3 760(you just have a WORM drive,)5 1424 2 720 5128 t
10 CW f
($FB/fetchw)720 5248 w
10 R f
( purport)1 330( two programs)2 601(instead. These)1 616 3 1357 5248 t
( single drives;)2 579(to be generic drivers for jukeboxes and)6 1605 2 720 5368 t
( media \(say an Exabyte tape\),)5 1295(if you have different)3 889 2 720 5488 t
( drivers with)2 547(you should be able simply to load the)7 1637 2 720 5608 t
(your media library to generate the appropriate fetch)7 2184 1 720 5728 t
( below in the sec-)4 788( details are given)3 739(program. More)1 657 3 720 5848 t
(tion on media management.)3 1134 1 720 5968 t
(Users can generally access any \256les they have)7 1934 1 970 6239 t
( for, regardless of what system they)6 1530(read permission)1 654 2 720 6359 t
( \256les were)2 486(are on or the system from which the)7 1698 2 720 6479 t
( addition, we trust our users \(or more)7 1537( In)1 150(stored from.)1 497 3 720 6599 t
( no checking)2 534(importantly, our network\) and so we do)6 1650 2 720 6719 t
( checking,)1 439( Such)1 287(of a user's right to retrieve \256les.)6 1458 3 720 6839 t
( to the)2 328(such as a password, can easily be added)7 1856 2 720 6959 t
( between the program the user calls)6 1533(startup protocol)1 651 2 720 7079 t
(\()720 7199 w
10 CW f
($FL/fetch)753 7199 w
10 R f
(\) and the server \()4 707 1 1293 7199 t
10 CW f
($FB/fetch_)2000 7199 w
10 R f
(\).)2600 7199 w
10 B f
(3.5. Administrivia)1 811 1 3216 840 t
10 R f
( odds)1 229(This section is a bunch of administrative)6 1705 2 3466 1003 t
( we organise the File Motel in)6 1289(and ends for the way)4 895 2 3216 1123 t
( details may be different, and)5 1384( Your)1 307(our Center.)1 493 3 3216 1243 t
( but the examples)3 732(indeed ours may change over time,)5 1452 2 3216 1363 t
(are probably helpful.)2 850 1 3216 1483 t
10 B f
( Layout)1 339(3.5.1. File)1 452 2 3216 1746 t
10 R f
( File Motel under the directory)5 1374(We store the)2 560 2 3466 1909 t
10 CW f
(/usr/backup)3216 2029 w
10 R f
(, which is a \256le system large enough)7 1524 1 3876 2029 t
( current databases and a)4 1120(to hold comfortably the)3 1064 2 3216 2149 t
( receiving)1 406( The)1 223( on this later\).)3 585(squashed version \(more)2 970 4 3216 2269 t
( \256le system \(about 120MB\))4 1184(area is another smallish)3 1000 2 3216 2389 t
(mounted on)1 503 1 3216 2509 t
10 CW f
(/usr/backup/rcv)3772 2509 w
10 R f
(and the holding)2 676 1 4724 2509 t
(area)3216 2629 w
10 CW f
(/usr/backup/v)3418 2629 w
10 R f
( system of the)3 597(is another \256le)2 568 2 4235 2629 t
( isolate the effects of)4 959( is done to)3 513( This)1 269(same size.)1 443 4 3216 2749 t
( know how)2 476(client excesses; the sending processes all)5 1708 2 3216 2869 t
( out of space \(we practice)5 1241(to deal with running)3 943 2 3216 2989 t
( month)1 298( regard running out of space once a)7 1516(often\). I)1 370 3 3216 3109 t
( aid)1 185( To)1 207(as tolerable; once a week is too much.)7 1792 3 3216 3229 t
( \256le)1 306(searches for \256les, we keep a)5 1878 2 3216 3349 t
(\()3216 3469 w
10 CW f
(/usr/backup/filenames)3249 3469 w
10 R f
( a sorted)2 404(\), which is)2 487 2 4509 3469 t
( by the data-)3 532( is maintained)2 583( This)1 247(list of all \256lenames.)3 822 4 3216 3589 t
(base squasher.)1 584 1 3216 3709 t
( to Weinberger's B-tree)3 1064(The main drawback)2 870 2 3466 3872 t
( does not reclaim space in the tree.)7 1457(software is that it)3 727 2 3216 3992 t
( tree \256le gets huge \(the rate)6 1302(Thus, over time the)3 882 2 3216 4112 t
( \256x is to period-)4 675( The)1 222(grows as the depth of the tree\).)6 1287 3 3216 4232 t
( combine this with dump-)4 1076( We)1 208( the tree.)2 370(ically squash)1 530 4 3216 4352 t
( to WORM disk in the script)6 1439(ing the database)2 745 2 3216 4472 t
10 CW f
($FM/bin/backupdb)3216 4592 w
10 R f
(.)4176 4592 w
10 B f
( to the Clients)3 615(3.5.2. Talking)1 626 2 3216 4855 t
10 R f
( best to call the clients rather)6 1214(We have found it)3 720 2 3466 5018 t
( seems more bal-)3 736( load)1 217( The)1 233(than have them call us.)4 998 4 3216 5138 t
( use)1 172( We)1 210( things get done sooner.)4 1008(anced and)1 414 4 3216 5258 t
10 I f
(mk)5059 5258 w
10 R f
(as it)1 178 1 5222 5258 t
(handles parallel processing; a typical mk\256le is)6 1896 1 3216 5378 t
8 CW f
(B=/usr/backup/bin)3216 5539 w
(CLIENTS=Cwild C3k Ctcp!tempel)2 1392 1 3216 5629 t
(NPROC=3)3216 5719 w
(clients:VQ: $CLIENTS)1 1152 1 3216 5899 t
(PROCPERM=$B/toworm $B/munge)1 1296 1 3600 5989 t
(munge:V:)3216 6169 w
(PROCPERM=$B/toworm $B/munge x)2 1392 1 3600 6259 t
(C%:VQ:)3216 6439 w
(set +e; $B/callclient $stem; exit 0)5 1680 1 3600 6529 t
10 R f
(Understanding this completely requires familiarity)4 2184 1 3216 6720 t
(with)3216 6840 w
10 I f
(mk)3429 6840 w
10 R f
( \256rst get the \256les)4 703( We)1 206(but the intent is clear.)4 903 3 3588 6840 t
(from the clients by the)4 1019 1 3216 6960 t
10 CW f
(C%)4290 6960 w
10 R f
(rule and then process)3 935 1 4465 6960 t
(them by)1 344 1 3216 7080 t
10 CW f
(munge)3604 7080 w
10 R f
(and then put them out on WORM)6 1452 1 3948 7080 t
(disk by)1 312 1 3216 7200 t
10 CW f
(toworm)3573 7200 w
10 R f
( use Datakit, most clients)4 1092( we)1 161(. As)1 214 3 3933 7200 t
( 613)1 3721(Research Tenth Edition)2 959 2 720 7560 t
cleartomark
showpage
saveobj restore
%%EndPage: 613 5
%%Page: 614 6
/saveobj save def
mark
6 pagesetup
10 R f
(The File Motel: An Owner's Manual)5 1513 1 720 480 t
( Datakit but some \(like)4 992(are called using)2 666 2 720 840 t
10 CW f
(tempel)2422 840 w
10 R f
(in)2826 840 w
( con-)1 246( This)1 280(the mk\256le\) are called using TCP/IP.)5 1658 3 720 960 t
( of magic works on V9 because of)7 1618(venient piece)1 566 2 720 1080 t
( of the IPC system;)4 899(Dave Presotto's clever design)3 1285 2 720 1200 t
( The)1 224( have to work harder.)4 894(you may)1 359 3 720 1320 t
10 CW f
(set)2233 1320 w
10 R f
(stuff in the)2 455 1 2449 1320 t
10 CW f
(C%)720 1440 w
10 R f
( on processing even if a client)6 1252(rule means to keep)3 778 2 874 1440 t
( entry in)2 413( The)1 253(gets an error.)2 603 3 720 1560 t
10 CW f
(/etc/crontab)2053 1560 w
10 R f
(is)2837 1560 w
(more or less)2 504 1 720 1680 t
8 CW f
(eval "cd /usr/backup/adm; mk clients 2>&1" |\\)6 2160 1 720 1990 t
(mail backup)1 528 1 720 2080 t
10 R f
(We use the)2 509 1 720 2420 t
10 CW f
(backup)1287 2420 w
10 R f
( to)1 137(mailbox to redirect mail)3 1062 2 1705 2420 t
(someone appropriate.)1 867 1 720 2540 t
10 B f
(3.6. Disasters)1 604 1 720 3097 t
10 R f
( that)1 197(Currently, the only disaster we have had)6 1737 2 970 3349 t
( result of a kernel bug is running out of)9 1697(was not the)2 487 2 720 3469 t
( Run-)1 270( is either inconvenient or quite bad.)6 1484(space; this)1 430 3 720 3589 t
( is)1 115(ning out of space in the receiving or safe areas)9 2069 2 720 3709 t
( the client's)2 528( default,)1 357( By)1 205(just inconvenient.)1 741 4 720 3829 t
10 I f
(fmpush)2607 3829 w
10 R f
( area runs out of space after)6 1161(stops when the receiving)3 1023 2 720 3949 t
( is)1 136( This)1 280( \256les got transmitted.)3 977(saying how many)2 791 4 720 4069 t
( to resend the rest when con-)6 1357(enough information)1 827 2 720 4189 t
( you can change)3 675(venient. Alternatively,)1 939 2 720 4309 t
10 CW f
($FL/act)2370 4309 w
10 R f
(to)2826 4309 w
(give)720 4429 w
10 I f
(fmpush)927 4429 w
10 R f
(the)1259 4429 w
10 CW f
(-r)1416 4429 w
10 R f
( means that it will retry)5 975(\257ag; this)1 358 2 1571 4429 t
( every hour or so until it succeeds.)7 1643(sending \256les)1 541 2 720 4549 t
(Running out of space in the holding area is also not)10 2184 1 720 4669 t
(too bad; eventually)2 794 1 720 4789 t
10 I f
(munge)1553 4789 w
10 R f
(will put the holding area)4 1037 1 1867 4789 t
( backup media and then cycle through the)7 1834(onto the)1 350 2 720 4909 t
(receiving area again.)2 843 1 720 5029 t
( of running out of space is)6 1223(The worst effect)2 711 2 970 5281 t
( happens rarely for us)4 956( \(This)1 292(ruining your database.)2 936 3 720 5401 t
( on a \256lesystem aprt from)5 1114(as we keep our databases)4 1070 2 720 5521 t
( the data-)2 439( Rebuilding)1 537( areas.\))1 321(the receiving/holding)1 887 4 720 5641 t
( out the next backup)4 862( \256nd)1 193( First,)1 279(base is not too hard.)4 850 4 720 5761 t
( a)1 91(name to be assigned \(by)4 1057 2 720 5881 t
10 CW f
(sweep -n)1 494 1 1915 5881 t
10 R f
(or by exa-)2 448 1 2456 5881 t
( Then,)1 302( media and holding areas\).)4 1112(mining the backup)2 770 3 720 6001 t
( backup copy of your database)5 1346(get the most recent)3 838 2 720 6121 t
( name you found)3 725( the next backup)3 705( Set)1 202(and install it.)2 552 4 720 6241 t
(in the \256rst step with)4 847 1 720 6361 t
10 CW f
(sweep -s)1 484 1 1604 6361 t
10 R f
( then need to)3 549(. You)1 267 2 2088 6361 t
( for each \256le added)4 844(extract the database information)3 1340 2 720 6481 t
( copy of the data-)4 786(to the database since the backup)5 1398 2 720 6601 t
( is stored in)3 521( starting \256le name)3 773( The)1 231(base was made.)2 659 4 720 6721 t
(the)720 6841 w
10 CW f
(.N)875 6841 w
10 R f
(\256le by)1 261 1 1028 6841 t
10 I f
(backupdb)1322 6841 w
10 R f
( program)1 371(. The)1 246 2 1718 6841 t
10 I f
(updatew)2368 6841 w
10 R f
(will)2748 6841 w
( from a WORM, and)4 893(extract this)1 456 2 720 6961 t
10 I f
(updatef)2110 6961 w
10 R f
(from regu-)1 445 1 2459 6961 t
( result is fed to)4 646( The)1 226( \256les.)1 230(lar disk)1 311 4 720 7081 t
10 I f
(dbupdate)2171 7081 w
10 R f
(as done)1 315 1 2589 7081 t
(in)720 7201 w
10 I f
(munge)831 7201 w
10 R f
(.)1105 7201 w
10 B f
( the File Motel on a Client System)7 1496(4. Installing)1 548 2 3216 840 t
10 R f
( have)1 247(The following instructions assume you)4 1687 2 3466 1010 t
(the source)1 575 1 3216 1130 t
10 CW f
(fm.cpio)3984 1130 w
10 R f
(somewhere, say)1 804 1 4596 1130 t
10 CW f
(/tmp/fm.cpio)3216 1250 w
10 R f
( also that these instructions)4 1167(. Note)1 297 2 3936 1250 t
( over time; you must follow the online)7 1697(will change)1 487 2 3216 1370 t
(copy of this document included with the source.)7 1976 1 3216 1490 t
( version 3 of)3 532( will need)2 412([1] You)1 422 3 3216 1660 t
10 I f
(mk)4617 1660 w
10 R f
(\(or any version)2 624 1 4776 1660 t
(dated later than Mar 11, 1989\).)5 1279 1 3466 1780 t
( source, set the)3 629( the root directory for the)5 1061([2] Select)1 494 3 3216 1950 t
(environment variable)1 872 1 3466 2070 t
10 CW f
(FMSRC)4384 2070 w
10 R f
( and)1 189(to its name)2 481 2 4730 2070 t
(export)3466 2190 w
10 CW f
(FMSRC)3754 2190 w
10 R f
( example,)1 396(. For)1 230 2 4054 2190 t
8 CW f
(FMSRC=/usr/filemotel/src)3504 2364 w
(export FMSRC)1 576 1 3504 2454 t
10 R f
( the source tree by)4 763([3] Install)1 500 2 3216 2658 t
8 CW f
(cd $FMSRC/..; cpio -iudc < /tmp/fm.cpio)5 1872 1 3504 2832 t
10 R f
( a)1 90([4] Create)1 510 2 3216 3036 t
10 CW f
(CONF)3862 3036 w
10 R f
( describes your ins-)3 842(\256le. This)1 410 2 4148 3036 t
( included in)2 608(tallation environment and is)3 1326 2 3466 3156 t
( various switches are)3 888( The)1 230(lower-level mk\256les.)1 816 3 3466 3276 t
( below; however, the easiest)4 1176(described in detail)2 758 2 3466 3396 t
( sample)1 364(way is to start with one of the)7 1570 2 3466 3516 t
( the directory)2 818(con\256guration \256les in)2 1116 2 3466 3636 t
10 CW f
($FMSRC/conf)3466 3756 w
10 R f
(.)4126 3756 w
( necessary, create the repository for client)6 1868([5] If)1 316 2 3216 3926 t
(\256les:)3466 4046 w
8 CW f
(mkdir /usr/lib/filemotel)1 1152 1 3504 4220 t
10 R f
(\(this is con\256gurable, see)3 1004 1 3466 4424 t
10 CW f
(FMLIB)4507 4424 w
10 R f
(below\) and if)2 556 1 4844 4424 t
(you have not de\256ned)3 877 1 3466 4544 t
10 CW f
(NO_NETNAME)4381 4544 w
10 R f
(in)5019 4544 w
10 CW f
(CONF)5135 4544 w
10 R f
(,)5375 4544 w
(ensure that)1 443 1 3466 4664 t
10 CW f
(/n/clientname)3942 4664 w
10 R f
(is a link to)3 444 1 4755 4664 t
10 CW f
(/)5232 4664 w
10 R f
(.)5292 4664 w
( the source tree for compiling by)6 1351([6] Initialise)1 600 2 3216 4834 t
8 CW f
(mk depend)1 432 1 3504 5008 t
10 R f
( you have)2 414( If)1 136(This only needs to be done once.)6 1384 3 3466 5212 t
(to repeat, you can undo this by)6 1277 1 3466 5332 t
8 CW f
(mk undepend)1 528 1 3504 5506 t
10 R f
( and install the client software by)6 1374([7] Compile)1 595 2 3216 5710 t
8 CW f
(mk client)1 432 1 3504 5884 t
10 R f
( as you like.)3 594(This can be repeated as often)5 1340 2 3466 6088 t
( in)1 144(Only \256les)1 434 2 3466 6208 t
10 CW f
(/usr/lib/filemotel)4110 6208 w
10 R f
(and)5256 6208 w
(the \256le)1 416 1 3466 6328 t
10 CW f
(/usr/bin/fm)4048 6328 w
10 R f
(\(these are)1 526 1 4874 6328 t
(con\256gurable, see)1 684 1 3466 6448 t
10 CW f
(FMBIN)4183 6448 w
10 R f
(below\) are affected.)2 809 1 4516 6448 t
( up the dialstring of the server system by)8 1690([8] Setup)1 478 2 3216 6618 t
8 CW f
(echo server-machine-name > \\)3 1344 1 3504 6792 t
(/usr/lib/filemotel/conf)3888 6882 w
10 R f
( you)1 197(The name should match the type of IPC)7 1737 2 3466 7086 t
(selected in)1 432 1 3466 7206 t
10 CW f
(CONF)3931 7206 w
10 R f
( example,)1 396(. For)1 230 2 4171 7206 t
( Programmer's Manual)2 942(614 UNIX)1 3738 2 720 7560 t
cleartomark
showpage
saveobj restore
%%EndPage: 614 6
%%Page: 615 7
/saveobj save def
mark
7 pagesetup
10 R f
(The File Motel: An Owner's Manual)5 1513 1 3887 480 t
(IPC Example)1 1182 1 1154 840 t
(Datakit)1085 960 w
10 CW f
(nj/astro/wild)1529 960 w
10 R f
(Datakit)1085 1080 w
10 CW f
(wild)1529 1080 w
10 R f
(IP)1085 1200 w
10 CW f
(wild.astro.nj.att.com)1529 1200 w
10 R f
( couple)1 307( A)1 146( operational.)1 515( theory, you are now)4 883([9] In)1 333 5 720 1526 t
( are described in the \256le)5 1276(of small tests)2 658 2 970 1646 t
10 CW f
(SANITY)970 1766 w
10 R f
( common problems and their)4 1241(. Some)1 333 2 1330 1766 t
(cures are described below.)3 1081 1 970 1886 t
( script)1 380( need to construct the)4 1382([10] You)1 422 3 720 2130 t
10 CW f
(/usr/lib/filemotel/sel)970 2250 w
10 R f
(which prints)1 543 1 2361 2250 t
( \256les that you want backed up.)6 1374(the names of)2 560 2 970 2370 t
(There is a sample script \()5 1166 1 970 2490 t
10 CW f
(sample.sel)2136 2490 w
10 R f
(\) in)1 168 1 2736 2490 t
( careful not to backup)4 1094( Be)1 225(that directory.)1 615 3 970 2610 t
(networked \256lesystems by mistake.)3 1401 1 970 2730 t
( are initiating backup via)4 1093( you)1 199([11] If)1 316 3 720 2974 t
10 I f
(cron)2378 2974 w
10 R f
(\(8\), add)1 335 1 2569 2974 t
(the following command to)3 1178 1 970 3094 t
10 CW f
(crontab)2213 3094 w
10 R f
(\(split)2698 3094 w
(here for readability\):)2 841 1 970 3214 t
8 CW f
(eval "/usr/lib/filemotel/sel |)2 1440 1 1008 3510 t
(/usr/lib/filemotel/act 2>&1" |)2 1440 1 1008 3600 t
(mail backup)1 528 1 1008 3690 t
10 R f
( from system to sys-)4 915(The exact format varies)3 1019 2 970 4016 t
( tell)1 179(tem; the File Motel administrator should)5 1755 2 970 4136 t
(you what time to set it off.)6 1106 1 970 4256 t
(If your client's backup is initiated from the)7 1934 1 970 4500 t
(server system, you will have to add the line)8 1934 1 970 4620 t
(for)970 4740 w
10 CW f
(fmclient)1119 4740 w
10 R f
( of IPC services)3 662(to your \257avour)2 610 2 1632 4740 t
( to the server by)4 799( you communicate)2 818(\256le. If)1 317 3 970 4860 t
(TCP/IP \(that is, your)3 1095 1 970 4980 t
10 CW f
(CONF)2177 4980 w
10 R f
(\256le has)1 374 1 2530 4980 t
10 CW f
(IPC=socket)970 5100 w
10 R f
(\), get the)2 382 1 1570 5100 t
10 I f
(fmclient)1991 5100 w
10 R f
(line from the)2 544 1 2360 5100 t
(\256le)970 5220 w
10 CW f
(tcp.inetd)1266 5220 w
10 R f
(and add it to)3 929 1 1975 5220 t
10 CW f
(/etc/inetd.conf)970 5340 w
10 R f
(\(some systems use)2 920 1 1984 5340 t
10 CW f
(/usr/etc/inetd.conf)970 5460 w
10 R f
(\) and add the)3 794 1 2110 5460 t
10 I f
(fmclient)970 5580 w
10 R f
(line from the \256le)3 768 1 1358 5580 t
10 CW f
(tcp.services)2184 5580 w
10 R f
(and add it to)3 587 1 970 5700 t
10 CW f
(/etc/services)1612 5700 w
10 R f
( then)1 227(. You)1 285 2 2392 5700 t
(need to prod)2 559 1 970 5820 t
10 I f
(inetd)1584 5820 w
10 R f
( \256les)1 221(to look at the new)4 836 2 1847 5820 t
( sending it a hangup signal\).)5 1312(\(commonly by)1 622 2 970 5940 t
( SunOS, you may need)4 983(On some systems, like)3 951 2 970 6060 t
( as the Yellow)3 712(to prod name servers such)4 1222 2 970 6180 t
(Pages as well.)2 579 1 970 6300 t
( add the corresponding)3 1008(If you use V10 IPC,)4 926 2 970 6544 t
(line for)1 366 1 970 6664 t
10 CW f
(fmclient)1435 6664 w
10 R f
(from)2014 6664 w
10 CW f
(ipc.V10)2307 6664 w
10 R f
(to)2826 6664 w
10 CW f
(/usr/ipc/lib/serv.local)970 6784 w
10 R f
( \256les)1 254(. The)1 300 2 2350 6784 t
10 CW f
(tcp.inetd)970 6904 w
10 R f
(and)1543 6904 w
10 CW f
(ipc.V10)1720 6904 w
10 R f
(are made by)2 503 1 2173 6904 t
8 CW f
(cd $FMSRC; mk ipc.list)3 1056 1 1008 7200 t
10 B f
( Common Installation Problems)3 1388(4.1. Some)1 449 2 3216 840 t
10 R f
( rule, keep an eye on the log \256le)8 1406(As a general)2 528 2 3466 1000 t
( the most)2 415( Perhaps)1 398( up the File Motel.)4 838(when setting)1 533 4 3216 1120 t
(convenient way is a window with a)6 1457 1 3216 1240 t
8 CW f
(tail -f $FM/log)2 720 1 3504 1397 t
10 R f
(The most common problem is that the basic)7 1934 1 3466 1584 t
( affects most pro-)3 764( This)1 257( work.)1 276(IPC software doesn't)2 887 4 3216 1704 t
( calling a service on the)5 1030(grams because they involve)3 1154 2 3216 1824 t
( is why the \256rst thing you try)7 1243( That)1 253(backup machine.)1 688 3 3216 1944 t
(to get working is)3 747 1 3216 2064 t
10 I f
(logger)4012 2064 w
10 R f
( messages to)2 555(which sends)1 515 2 4330 2064 t
( The)1 251(the logger process on the backup machine.)6 1933 2 3216 2184 t
( I have seen here are typically bugs in)8 1619(kinds of bugs)2 565 2 3216 2304 t
( For)1 259( code, particularly TCP/IP.)3 1260(the networking)1 665 3 3216 2424 t
(example, the)1 563 1 3216 2544 t
10 I f
(logprint)3857 2544 w
10 R f
(function expects an ack-)3 1134 1 4266 2544 t
(nowledgement from the logger server to indicate that)7 2184 1 3216 2664 t
( two of the sys-)4 704( at least)2 347( On)1 201(everything went okay.)2 932 4 3216 2784 t
( happen because)2 697(tems I use, this sometimes doesn't)5 1487 2 3216 2904 t
( socket by the logger server after)6 1433(the closing of the)3 751 2 3216 3024 t
( the ack and get)4 670(sending the ack seems to speed pass)6 1514 2 3216 3144 t
(to)3216 3264 w
10 I f
(logprint)3345 3264 w
10 R f
(\256rst. Naturally,)1 667 1 3727 3264 t
10 I f
(logprint)4446 3264 w
10 R f
(complains, as)1 571 1 4829 3264 t
( best solution is to \256x the TCP/IP)7 1410( The)1 225(might we all.)2 549 3 3216 3384 t
(implementation; failing that, you might try a judi-)7 2184 1 3216 3504 t
( between the ack and the close in the)8 1711(cious sleep)1 473 2 3216 3624 t
( only one example of a general)6 1284( is)1 100( This)1 244(logger server.)1 556 4 3216 3744 t
(class of timing problems.)3 1035 1 3216 3864 t
( \256eld of failed implementations)4 1327(Another fertile)1 607 2 3466 4024 t
( File)1 203( The)1 235( system names.)2 652(have to do with user and)5 1094 4 3216 4144 t
( of system and user)4 835(Motel tries to check the validity)5 1349 2 3216 4264 t
(names and denies service if there appears to be)8 2184 1 3216 4384 t
( some oth-)2 462( Regrettably,)1 569( going on.)2 443(something sleazy)1 710 4 3216 4504 t
( TCP/IP implementations resemble)3 1595(erwise sound)1 589 2 3216 4624 t
( user)1 210( example, a)2 493(sleaze. For)1 483 3 3216 4744 t
10 CW f
(mary)4446 4744 w
10 R f
(on a client may)3 670 1 4730 4744 t
(appear on the server as the user)6 1317 1 3216 4864 t
10 CW f
(bill)4569 4864 w
10 R f
( a system)2 392(. Or)1 199 2 4809 4864 t
( unrelated to the)3 739(may have a system name that is)6 1445 2 3216 4984 t
( attempt is made)3 682( An)1 188(name the networking code uses.)4 1314 3 3216 5104 t
( fail with unex-)3 694(to cope with these cases, but may)6 1490 2 3216 5224 t
( worst comes to)3 666( If)1 136(pectedly bizarre implementations.)2 1382 3 3216 5344 t
( off all the checking and hope no)7 1423(worst, simply turn)2 761 2 3216 5464 t
( if you do this,)4 685( \(Even)1 322(one does anything naughty.)3 1177 3 3216 5584 t
( to claim they)3 577(think hard about allowing remote users)5 1607 2 3216 5704 t
(are)3216 5824 w
10 CW f
(root)3384 5824 w
10 R f
(; they will be able to look at all sorts of)10 1776 1 3624 5824 t
( X, I implement function and policy.)6 1538(things.\) Unlike)1 646 2 3216 5944 t
( place)1 335(All the checking is done in one)6 1849 2 3216 6064 t
(\()3216 6184 w
10 CW f
(serv_$IPC.c)3249 6184 w
10 R f
(\); feel free to do whatever you like,)7 1491 1 3909 6184 t
(it's your Motel now.)3 846 1 3216 6304 t
10 B f
( and Compiling Options)3 1052(4.2. Con\256guration)1 817 2 3216 6558 t
10 R f
( is designed for easy)4 903(The File Motel software)3 1031 2 3466 6718 t
( The)1 270(installation in heterogeneous environments.)3 1914 2 3216 6838 t
( are stored in)3 605(con\256guration details described below)3 1579 2 3216 6958 t
(the \256le)1 346 1 3216 7078 t
10 CW f
($FMSRC/CONF)3658 7078 w
10 R f
(.)4318 7078 w
10 CW f
($FMSRC)4472 7078 w
10 R f
(contains a)1 472 1 4928 7078 t
( sys-)1 209(number of \256les containing settings for various)6 1975 2 3216 7198 t
( 615)1 3721(Research Tenth Edition)2 959 2 720 7560 t
cleartomark
showpage
saveobj restore
%%EndPage: 615 7
%%Page: 616 8
/saveobj save def
mark
8 pagesetup
10 R f
(The File Motel: An Owner's Manual)5 1513 1 720 480 t
( these as a starting)4 768(tems; you may want to use one of)7 1416 2 720 840 t
( information)1 536( that the following)3 850(point. \(Remember)1 798 3 720 960 t
( half-life; the truth should be in the)7 1662(has a small)2 522 2 720 1080 t
( most obvious)2 644( The)1 254( this manual.\))2 629(online copy of)2 657 4 720 1200 t
( choosing)1 397(aspect of con\256guring the File Motel means)6 1787 2 720 1320 t
( source)1 299( The)1 227( where \256les live.)3 702(on the three directories)3 956 4 720 1440 t
(directory,)720 1560 w
10 CW f
(FMSRC)1164 1560 w
10 R f
( The)1 213(, has been described above.)4 1227 2 1464 1560 t
(other two are)2 542 1 720 1680 t
10 CW f
(FMLIB=/usr/lib/filemotel)720 1836 w
10 R f
( want to put the)4 706(Change this to wherever you)4 1228 2 970 1956 t
(subprograms.)970 2076 w
10 CW f
(FMBIN=/usr/bin)720 2232 w
10 R f
( com-)1 255(The directory for the \(only\) user-called)5 1679 2 970 2352 t
(mand,)970 2472 w
10 CW f
(backup)1250 2472 w
10 R f
(.)1610 2472 w
( source to your environment is)5 1498(Con\256guring the)1 686 2 720 2628 t
(mostly done with)2 779 1 720 2748 t
10 I f
(mk)1566 2748 w
10 R f
(variables and an interface)3 1147 1 1757 2748 t
(library in)1 377 1 720 2868 t
10 CW f
(src/sys/)1130 2868 w
10 I f
(system)1610 2868 w
10 R f
(. The)1 246 1 1876 2868 t
10 I f
(mk)2155 2868 w
10 R f
(variables are)1 514 1 2312 2868 t
10 CW f
(RANLIB=ranlib)720 3024 w
10 R f
( mostly BSD-based, whine)3 1273(Some systems,)1 661 2 970 3144 t
( are pro-)2 419(incessantly unless archive libraries)3 1515 2 970 3264 t
( some program typically called)4 1425(cessed with)1 509 2 970 3384 t
10 I f
(ranlib)970 3504 w
10 R f
( this case, set)3 620(. In)1 197 2 1223 3504 t
10 CW f
(RANLIB=ranlib)2096 3504 w
10 R f
(;)2876 3504 w
( V)1 141(otherwise, say if you are on a System)7 1793 2 970 3624 t
( program such as)3 820(machine, use a harmless)3 1114 2 970 3744 t
10 CW f
(RANLIB=:)970 3864 w
10 R f
(.)1450 3864 w
10 CW f
(IPC=socket)720 4020 w
10 R f
( Different)1 459( of IPC.)2 386(Select your favorite type)3 1089 3 970 4140 t
( use different types and the client's)6 1493(clients can)1 441 2 970 4260 t
( \(For)1 246( the backup system.)3 836(type need not match)3 852 3 970 4380 t
( talks to us)3 503(example, in our Center, the Cray)5 1431 2 970 4500 t
( The)1 224( talk to it via Datakit.\))5 938(via TCP/IP but we)3 772 3 970 4620 t
(only choices are)2 664 1 970 4740 t
10 CW f
(socket)1667 4740 w
10 R f
(and)2060 4740 w
10 CW f
(v10)2237 4740 w
10 R f
(.)2417 4740 w
10 CW f
(IPCLIB=)720 4896 w
10 R f
(Set this if you need a special library in order)9 1934 1 970 5016 t
( example, on)2 565( For)1 223(to use your \257avor of IPC.)5 1146 3 970 5136 t
(V10 systems set)2 666 1 970 5256 t
10 CW f
(IPCLIB=-lipc)1669 5256 w
10 R f
(.)2389 5256 w
10 CW f
(LIBTYPE=a)720 5412 w
10 R f
(This should be set to)4 888 1 970 5532 t
10 CW f
(a)1898 5532 w
10 R f
( are on the)3 466(unless you)1 440 2 1998 5532 t
( when)1 284( have archives yet!\))3 813(Cray \(which doesn't)2 837 3 970 5652 t
(it should be)2 483 1 970 5772 t
10 CW f
(o)1486 5772 w
10 R f
(.)1546 5772 w
10 CW f
(COMPAT=)720 5928 w
10 R f
(Set)970 6048 w
10 CW f
(COMPAT=.compat)1162 6048 w
10 R f
(if you want to be)4 837 1 2067 6048 t
( \(You)1 289( Motel \256les.)2 533(able to process older File)4 1112 3 970 6168 t
( to get this to work on)6 962(may have to work hard)4 972 2 970 6288 t
(some systems; I gave up on the Cray.\))7 1582 1 970 6408 t
10 CW f
(SECTYPE=)720 6564 w
10 R f
(Set)970 6684 w
10 CW f
(SECTYPE=v9)1184 6684 w
10 R f
( are running a)3 737(if you)1 297 2 1870 6684 t
(McIlroy-Reeds compatible security kernel.)3 1737 1 970 6804 t
10 CW f
(WORMFACE=uda)720 6960 w
10 R f
( software, you)2 612(If you are running the WORM)5 1322 2 970 7080 t
(need to say what kind of interface the WORM)8 1934 1 970 7200 t
( option is)2 457( The)1 255( to.)1 170(is attached)1 465 4 3466 840 t
10 CW f
(scsi)4880 840 w
10 R f
(. The)1 280 1 5120 840 t
(latter may need customizing at your site.)6 1671 1 3466 960 t
( interface library)2 766(Currently the system dependent)3 1418 2 3216 1121 t
(includes the following routines:)3 1293 1 3216 1241 t
10 CW f
(dirtoents)3216 1429 w
10 R f
(convert directory to element names)4 1440 1 3966 1429 t
10 CW f
(ftw)3216 1549 w
10 R f
(traverse \256le tree)2 658 1 3966 1549 t
10 CW f
(nofile)3216 1669 w
10 R f
(number of fd's available)3 1002 1 3966 1669 t
10 CW f
(sysname)3216 1789 w
10 R f
(system name)1 527 1 3966 1789 t
10 CW f
(username)3216 1909 w
10 R f
(user's login name)2 726 1 3966 1909 t
10 CW f
(rx_$IPC)3216 2029 w
10 R f
(call a remote service)3 846 1 3966 2029 t
10 CW f
(serv_$IPC)3216 2149 w
10 R f
(receive calls)1 503 1 3966 2149 t
10 CW f
(service)3216 2269 w
10 R f
(service/socket mapping details)2 1242 1 3966 2269 t
10 CW f
(dateadjust)3216 2389 w
10 R f
(do daylight savings/timezone)2 1188 1 3966 2389 t
(There are a small number of)5 1207 1 3216 2577 t
10 CW f
(#define)4465 2577 w
10 R f
('s inside)1 353 1 4885 2577 t
10 CW f
(.c)5280 2577 w
10 R f
(\256les.)3216 2697 w
10 CW f
(-DSTRINGH="'<string.h>'")3216 2858 w
10 R f
( value to be the string function)6 1479(De\256ne the)1 455 2 3466 2978 t
(header \256le.)1 451 1 3466 3098 t
10 CW f
(-DNO_NETNAME)3216 3259 w
10 R f
( saving and restoring \256les)4 1063(De\256ne this to disable)3 871 2 3466 3379 t
(through)3466 3499 w
10 CW f
(/n/machine-name)3844 3499 w
10 R f
(although they)1 589 1 4811 3499 t
(will still be stored with that pre\256x.)6 1429 1 3466 3619 t
10 B f
( the File Motel on a Server System)7 1517(5. Installing)1 548 2 3216 3875 t
10 R f
(The source comes as a)4 1009 1 3466 4036 t
10 I f
(cpio)4528 4036 w
10 R f
( if)1 115(\256le \(perhaps)1 524 2 4761 4036 t
(you are lucky it may come in)6 1285 1 3216 4156 t
10 I f
(tar)4546 4156 w
10 R f
( As)1 188(format too\).)1 496 2 4716 4156 t
(with the client source installation, note that the fol-)8 2184 1 3216 4276 t
( is dated and the online copy may)7 1424(lowing description)1 760 2 3216 4396 t
(be signi\256cantly different in detail.)4 1389 1 3216 4516 t
( process steps)2 645( the client installation)3 1005([1] Follow)1 534 3 3216 4677 t
(1)3466 4797 w
10 S1 f
(\261)3516 4797 w
10 R f
( where the)2 431( also need to set the place)6 1074(8. You)1 314 3 3581 4797 t
( do it this)3 457( I)1 118(administrative binaries are kept.)3 1359 3 3466 4917 t
(way:)3466 5037 w
8 CW f
(FMAB=/usr/filemotel/bin)3504 5195 w
(export FMAB)1 528 1 3504 5285 t
10 R f
([2] Complete)1 639 1 3216 5473 t
10 CW f
($FMLIB/conf)3952 5473 w
10 R f
( to)1 176( have)1 285(. You)1 327 3 4612 5473 t
( default media type and the root of)7 1483(specify the)1 451 2 3466 5593 t
( tree \(denoted by)3 766(the administrative \256le)2 932 2 3466 5713 t
10 CW f
($FM)5220 5713 w
10 R f
( are in)2 331(below\). Details)1 684 2 3466 5833 t
10 I f
(backup)4546 5833 w
10 R f
(\(5\); my File)2 558 1 4842 5833 t
(Motel has this con\256guration:)3 1177 1 3466 5953 t
8 CW f
(wild)3504 6111 w
(j)3504 6201 w
(/usr/backup)3504 6291 w
10 R f
( as)1 130( that doesn't need to run)5 1073([3] Everything)1 694 3 3216 6479 t
10 CW f
(root)5160 6479 w
10 R f
( By)1 211(should run as an otherwise unused id.)6 1723 2 3466 6599 t
(default, this is)2 610 1 3466 6719 t
10 CW f
(fmdaemon)4124 6719 w
10 R f
(; if you don't like)4 796 1 4604 6719 t
( in)1 112(this, change the de\256ne)3 923 2 3466 6839 t
10 CW f
(libfm/server.c)4535 6839 w
10 R f
(.)5375 6839 w
(Whatever you choose, set up an account for)7 1934 1 3466 6959 t
( their)1 218(them; the File Motel requires nothing but)6 1716 2 3466 7079 t
( By)1 216( even a login directory\).)4 1120(name/uid \(not)1 598 3 3466 7199 t
( Programmer's Manual)2 942(616 UNIX)1 3738 2 720 7560 t
cleartomark
showpage
saveobj restore
%%EndPage: 616 8
%%Page: 617 9
/saveobj save def
mark
9 pagesetup
10 R f
(The File Motel: An Owner's Manual)5 1513 1 3887 480 t
( the)1 171(default, all the shell scripts send mail to)7 1763 2 970 840 t
(mailbox)970 960 w
10 CW f
(backup)1350 960 w
10 R f
( to an)2 278( should be set)3 628(. This)1 288 3 1710 960 t
(alias for the File Motel caretaker.)5 1370 1 970 1080 t
( system of the many services)5 1236( your IPC)2 421([4] Inform)1 527 3 720 1254 t
( the notes under)3 740( See)1 237(the File Motel offers.)3 957 3 970 1374 t
( in the client installation above but)6 1611(step 11)1 323 2 970 1494 t
(install everything, not just)3 1120 1 970 1614 t
10 CW f
(fmclient)2140 1614 w
10 R f
(. \(See)1 284 1 2620 1614 t
( also need to set)4 706( You)1 246(step 10 below as well.\))4 982 3 970 1734 t
( periodic \(normally nightly\) calling of)5 1658(up the)1 276 2 970 1854 t
(clients and/or the processing of their \256les by)7 1934 1 970 1974 t
10 CW f
($FB/munge)970 2094 w
10 R f
(.)1510 2094 w
10 I f
(Munge)1628 2094 w
10 R f
( a)1 103(needs the name of)3 828 2 1973 2094 t
( to your backup)3 759(program to copy the \256les)4 1175 2 970 2214 t
(media; set the variable)3 1027 1 970 2334 t
10 CW f
(PROCPERM)2064 2334 w
10 R f
(to that)1 294 1 2610 2334 t
( described previously,)2 985( As)1 221(program's name.)1 728 3 970 2454 t
( the data-)2 397(you also need to periodically backup)5 1537 2 970 2574 t
(bases with)1 429 1 970 2694 t
10 CW f
(backupdb)1434 2694 w
10 R f
(; it also needs the name)5 990 1 1914 2694 t
(of the program to copy \256le sto your media.)8 1776 1 970 2814 t
( the log \256le:)3 505([5] Initialise)1 600 2 720 2988 t
8 CW f
(> $FM/log; chown bin $FM/log)4 1344 1 1008 3168 t
(chmod 644 $FM/log)2 816 1 1008 3258 t
10 R f
( the server programs:)3 869([6] Install)1 500 2 720 3468 t
8 CW f
(mk server)1 432 1 1008 3648 t
10 R f
( their names in)3 636( List)1 229( receiving areas.)2 680( the)1 161([7] Setup)1 478 5 720 3858 t
10 CW f
($FM/adm/rcvdirs)970 3978 w
10 R f
( each are)2 423(and initialise)1 550 2 1931 3978 t
(by running)1 444 1 970 4098 t
8 CW f
($FB/rcvdirs)1008 4278 w
10 R f
( \256lesystem mounted on)3 1036(We use one 120MB)3 898 2 970 4488 t
10 CW f
($FM/rcv)970 4608 w
10 R f
(.)1390 4608 w
( It)1 147( the safe area for backup copies.)6 1449([8] Allocate)1 588 3 720 4782 t
(must have the name)3 901 1 970 4902 t
10 CW f
($FM/v)1930 4902 w
10 R f
(but may be a)3 615 1 2289 4902 t
( enough space in)3 731(symbolic link if there is not)5 1203 2 970 5022 t
10 CW f
($FM)970 5142 w
10 R f
( sized \256lesystem)2 709( use an identically)3 799(. We)1 246 3 1150 5142 t
(to the receive area mounted on)5 1267 1 970 5262 t
10 CW f
($FM/v)2270 5262 w
10 R f
(.)2570 5262 w
( deciding which databases you want)5 1724([9] After)1 460 2 720 5436 t
(maintained, initialise the databases with)4 1628 1 970 5556 t
8 CW f
(src/dbinit.sh)1008 5736 w
10 R f
( with all three and)4 805(You may want to start off)5 1129 2 970 5946 t
(remove any you don't want later on \(like)7 1934 1 970 6066 t
(when they get to be too big\).)6 1194 1 970 6186 t
( how the receiving process)4 1140([10] Choose)1 550 2 720 6360 t
10 I f
(rcv)2455 6360 w
10 R f
(works.)2635 6360 w
( is)1 126( it)1 116( If)1 159(By default, it simply accepts \256les.)5 1533 4 970 6480 t
( the name)2 444(invoked by)1 474 2 970 6600 t
10 CW f
(mrcv)1941 6600 w
10 R f
(, it initiates pro-)3 723 1 2181 6600 t
(cessing of the received by)4 1168 1 970 6720 t
10 I f
(munge)2195 6720 w
10 R f
(\(or more)1 378 1 2526 6720 t
(accurately,)970 6840 w
10 CW f
($FL/callmunge)1460 6840 w
10 R f
(\) after the \256rst)3 664 1 2240 6840 t
( \256les have been received \(you need)6 1593(and last)1 341 2 970 6960 t
( \256le took longer to)4 931(both in case any one)4 1003 2 970 7080 t
(receive than)1 497 1 970 7200 t
10 I f
(munge)1505 7200 w
10 R f
( advan-)1 308( The)1 225('s cycle time\).)2 592 3 1779 7200 t
( that you will almost never run out of)8 1656(tage is)1 278 2 3466 840 t
( you will be processing \256les at the)7 1552(space, as)1 382 2 3466 960 t
( disadvan-)1 438( The)1 238(same time as receiving them.)4 1258 3 3466 1080 t
( use)1 176( I)1 109( that everything will run slower.)5 1372(tage is)1 277 4 3466 1200 t
( rarely run out of)4 844(the default behavior; we)3 1090 2 3466 1320 t
( some client)2 499(space and I like to investigate why)6 1435 2 3466 1440 t
(is sending much more than normal before)6 1934 1 3466 1560 t
(accepting it all.)2 629 1 3466 1680 t
( starting with step)3 768( the client installation)3 915([11] Finish)1 501 3 3216 1843 t
( receiv-)1 310(10, making sure you do not backup the)7 1624 2 3466 1963 t
(ing areas or)2 481 1 3466 2083 t
10 CW f
($FM/v)3980 2083 w
10 R f
(.)4280 2083 w
( the command)2 582([12] Add)1 422 2 3216 2246 t
8 CW f
($FB/rmlocks)3504 2408 w
10 R f
(to)3466 2600 w
10 CW f
(/etc/rc)3595 2600 w
10 R f
(\(or whatever passes for system)4 1334 1 4066 2600 t
( removes)1 374( simply)1 310( This)1 248(startup on your system\).)3 1002 4 3466 2720 t
(any lock\256les in)2 627 1 3466 2840 t
10 CW f
($FM/locks)4126 2840 w
10 R f
(.)4666 2840 w
10 B f
( Management)1 593(6. Media)1 413 2 3216 3103 t
10 R f
( been made to provide generic)5 1295(An attempt has)2 639 2 3466 3266 t
( example, the)2 633( For)1 246( programs.)1 476(media management)1 829 4 3216 3386 t
(recovery servers)1 664 1 3216 3506 t
10 I f
(fetchw)3914 3506 w
10 S f
(_)4175 3506 w
10 R f
(and)4267 3506 w
10 I f
(fetchj)4445 3506 w
10 S f
(_)4667 3506 w
10 R f
(are instances of)2 640 1 4760 3506 t
( server respec-)2 618(a single device server and a jukebox)6 1566 2 3216 3626 t
( this work, a media library is used.)7 1491( make)1 256(tively. To)1 437 3 3216 3746 t
( imple-)1 302(To use a new media, such as Exabyte tapes,)8 1882 2 3216 3866 t
( library)1 307(ment the routines in the library, and link the)8 1877 2 3216 3986 t
(with)3216 4106 w
10 CW f
(fm/media_.o)3485 4106 w
10 R f
(or)4236 4106 w
10 CW f
(fm/mmedia_.o)4410 4106 w
10 R f
(. An)1 270 1 5130 4106 t
(informal description of the routines follow.)5 1766 1 3216 4226 t
10 CW f
(mediainit\(char *device, char)2 2184 1 3216 4389 t
(*vol_id\))3216 4509 w
10 R f
( by)1 141(Initialise the media on the device speci\256ed)6 1793 2 3466 4629 t
10 I f
(device)3216 4749 w
10 R f
( or any recogniz-)3 711( latter may a full name)5 961(. The)1 250 3 3478 4749 t
( If)1 145(able abbreviation.)1 736 2 3216 4869 t
10 I f
(vol)4144 4869 w
10 S f
(_)4266 4869 w
10 I f
(id)4316 4869 w
10 R f
(is given, it is checked)4 951 1 4449 4869 t
(against the media present.)3 1061 1 3216 4989 t
10 CW f
(char *mediamount\(char *vol_id\))2 1800 1 3216 5152 t
10 R f
(Mount the media named)3 1016 1 3466 5272 t
10 I f
(vol)4521 5272 w
10 S f
(_)4643 5272 w
10 I f
(id)4693 5272 w
10 R f
(and return the)2 582 1 4818 5272 t
( use by)2 343(appropriate device \(suitable for)3 1342 2 3216 5392 t
10 I f
(mediainit)4956 5392 w
10 R f
(\).)5342 5392 w
(Currently, the values given as)4 1378 1 3216 5512 t
10 I f
(vol)4666 5512 w
10 S f
(_)4788 5512 w
10 I f
(id)4838 5512 w
10 R f
(are those)1 404 1 4996 5512 t
(returned by)1 465 1 3216 5632 t
10 I f
(medianame)3714 5632 w
10 R f
(\(below\).)4215 5632 w
10 CW f
(medianame\(char *volume\))1 1380 1 3216 5795 t
10 R f
(Return the media name containing)4 1408 1 3466 5915 t
10 I f
(volume)4907 5915 w
10 R f
(.)5203 5915 w
10 CW f
(mediaopen\(char *name, Media *m\))3 1860 1 3216 6078 t
10 R f
(Set up)1 274 1 3466 6198 t
10 I f
(m)3786 6198 w
10 R f
( backup copy)2 576(to point at the)3 616 2 3912 6198 t
10 I f
(name)5151 6198 w
10 R f
(.)5375 6198 w
(The \256elds in a)3 608 1 3216 6318 t
10 CW f
(Media)3862 6318 w
10 R f
( descriptor, pre-)2 658(include a \256le)2 542 2 4200 6318 t
(ferred read block size, and copy size.)6 1526 1 3216 6438 t
10 CW f
(void mediafiles\(int32 v, int32 n,)4 2184 1 3216 6601 t
(Media *m, Tb **bp\))3 1080 1 3216 6721 t
10 R f
( a list \(in)3 398(Return a Media and)3 832 2 3466 6841 t
10 CW f
(*bp)4736 6841 w
10 R f
(\) of backup)2 484 1 4916 6841 t
( for all backup copies more recent than)7 1631(copy pointers)1 553 2 3216 6961 t
(\256le)3216 7081 w
10 I f
(n)3382 7081 w
10 R f
(in volume)1 416 1 3478 7081 t
10 I f
(v)3932 7081 w
10 R f
(. A)1 168 1 3984 7081 t
10 CW f
(Tb)4190 7081 w
10 R f
( time and)2 400(has the creation)2 652 2 4348 7081 t
( is)1 108( \(It)1 168( backup copy.)2 589(initial \(1K\) block number for a)5 1319 4 3216 7201 t
( 617)1 3721(Research Tenth Edition)2 959 2 720 7560 t
cleartomark
showpage
saveobj restore
%%EndPage: 617 9
%%Page: 618 10
/saveobj save def
mark
10 pagesetup
10 R f
(The File Motel: An Owner's Manual)5 1513 1 720 480 t
(used by)1 331 1 720 840 t
10 I f
(dbupdate)1099 840 w
10 R f
( size returned in)3 709(\). The)1 294 2 1479 840 t
10 I f
(m)2531 840 w
10 R f
(is not)1 244 1 2660 840 t
(actually a size but the number of records in)8 1788 1 720 960 t
10 CW f
(*bp)2541 960 w
10 R f
(.)2721 960 w
(This is not a complete description; if you have)8 1934 1 970 1116 t
( the)1 165(to write new versions of these routines, look at)8 2019 2 720 1236 t
(existing implementations \(in)2 1191 1 720 1356 t
10 CW f
($FMSRC/media)1959 1356 w
10 R f
(\) and)1 225 1 2679 1356 t
(the programs that use them \(all in)6 1391 1 720 1476 t
10 CW f
($FMSRC/fm)2144 1476 w
10 R f
(\).)2684 1476 w
10 B f
(7. References)1 605 1 3216 840 t
10 R f
( Incremental)1 510( File Motel \320 An)4 749( The)1 221(1. Hume, A.G.)2 604 4 3316 1116 t
( In)1 157( Unix.)1 266(Backup System for)2 800 3 3424 1236 t
10 I f
(USENIX Summer)1 712 1 4688 1236 t
(Conference Proceedings \(Phoenix\))2 1546 1 3424 1356 t
10 R f
(, Usenix,)1 430 1 4970 1356 t
(July 1988, pp. 445-457.)3 974 1 3424 1476 t
( Programmer's Manual)2 942(618 UNIX)1 3738 2 720 7560 t
cleartomark
showpage
saveobj restore
%%EndPage: 618 10
%%Trailer
done
%%Pages: 10