Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/feature-vt/sys/lib/backup/backup – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#!/bin/rc
2
# backup [-np] [-d dev] [-s set] - backup venti arenas to disc set using dev
3
#	and record that.  also print recent fossil dump scores.
4
 
5
rfork ne
6
cd /sys/lib/backup
7
. funcs
8
bind -a . /bin
9
 
10
done=0
11
print=yes
12
while (~ $done 0 && ! ~ $#* 0 && ~ $1 -*) {
13
	switch ($1) {
14
	case -d;	rdev=$2; shift
15
	case -n;	debug=yes		# don't dump; use with -s test
16
	case -p;	print=no
17
	case -s;	set=$2 ; shift
18
	case --;	done = 1		# no break in rc, alas
19
	case -*
20
		echo usage: $0 '[-np] [-d dev] [-s set]' >[1=2]
21
		exit usage
22
	}
23
	shift
24
}
25
 
26
fn sigint sighup sigterm {
27
	exit note
28
}
29
 
30
fn dobackuparenas {
31
	if (~ $debug yes) {
32
		echo pretending to backuparenas $*
33
		shift
34
		for (name)
35
			dumpdone arena0 $name
36
	}
37
	if not
38
		backuparenas $*
39
}
40
 
41
fn backupdisc {
42
	echo please insert disc $disc of set $set into $rdev and press return to backup
43
	echo -n $"*^': '
44
	if (! ~ $debug yes)
45
		junk=`{read}
46
	if not
47
		echo
48
	dobackuparenas $rdev $*
49
}
50
 
51
fn backup1 {
52
	progress=no
53
	disc1trks=`{hoc -e $ntracks-$tracks}
54
	disc1arenas=()
55
	if (! ~ $disc1trks 0)
56
		disc1arenas=`{sed $disc1trks^q arenas}
57
	if (! ~ $#disc1arenas 0 && ! ~ $disc1trks 0) {
58
		backupdisc $disc1arenas
59
		quitonfailure $status
60
 
61
		tracks = `{hoc -e $tracks+$#disc1arenas}
62
		if (test $tracks -ge $ntracks) {
63
			disc=`{hoc -e $disc+1}
64
			tracks=0
65
		}
66
		updprog
67
 
68
		sed 1,$disc1trks^d arenas >morearenas
69
		mv morearenas arenas
70
		arenas_todo=`{cat arenas}
71
	}
72
}
73
 
74
cd $set
75
tobackup $set >arenas
76
quitonfailure $status
77
 
78
arenas_todo=`{cat arenas}
79
if (~ $#arenas_todo 0) {
80
	echo no sealed arenas not yet on disc exist on $fs
81
	exit ''
82
}
83
 
84
if (test -s disc)
85
	.   disc
86
if not
87
	updprog
88
 
89
if (! ~ $debug yes && ~ $set set1 && ~ $print yes) {
90
	9fs log
91
	# don't hang in lp
92
	tail -50 /sys/log/fs.archive | pr -h 'recent fossil dump scores' | lp &
93
	echo fossil dump scores just printed.
94
}
95
 
96
progress=yes
97
while (test $#arenas_todo -gt 0 && ~ $progress yes) {
98
	backup1
99
	quitonfailure $status
100
}
101
exit ''