15c4758afSDavid du Colombier#!/bin/rc 25c4758afSDavid du Colombier# funcs - rc functions and definitions common to dump scripts 35c4758afSDavid du Colombierfn backupinit { 45c4758afSDavid du Colombier if (! ~ $backupinitdone yes) { 55c4758afSDavid du Colombier disc=1 65c4758afSDavid du Colombier tracks=0 75c4758afSDavid du Colombier 85c4758afSDavid du Colombier # tunable parameters 95c4758afSDavid du Colombier set=set1 10*1c9e5a6cSDavid du Colombier fs=pie 11*1c9e5a6cSDavid du Colombier arenas=/dev/sde0/arena0 # on $fs 12*1c9e5a6cSDavid du Colombier rdev=/dev/sdE1 # on terminal with bd burner 13*1c9e5a6cSDavid du Colombier 14*1c9e5a6cSDavid du Colombier blocksize=8192 15*1c9e5a6cSDavid du Colombier arenasize=1073741824 # twice the venti default, on yoshimi & pie 16*1c9e5a6cSDavid du Colombier # trackbytes=$arenasize 17*1c9e5a6cSDavid du Colombier # discbytes=`{ls -l $rdev/data | awk '{print $6}'} 185c4758afSDavid du Colombier # ntracks=`{ hoc -e 'int('$discbytes/$trackbytes')' } 195c4758afSDavid du Colombier ntracks=45 # for BD dual-layer 20*1c9e5a6cSDavid du Colombier 215c4758afSDavid du Colombier backupinitdone=yes 225c4758afSDavid du Colombier backups=/sys/lib/backup 23*1c9e5a6cSDavid du Colombier path=(/bin $backups .) 245c4758afSDavid du Colombier } 255c4758afSDavid du Colombier} 265c4758afSDavid du Colombier 275c4758afSDavid du Colombier# assume we're in $backups/$set 285c4758afSDavid du Colombierfn updprog { 295c4758afSDavid du Colombier echo 'disc='$disc 'tracks='$tracks >ndisc && mv ndisc disc 305c4758afSDavid du Colombier} 315c4758afSDavid du Colombier 325c4758afSDavid du Colombier# assumes $set is set 335c4758afSDavid du Colombierfn dumpdone { # arena-part arena-name 345c4758afSDavid du Colombier @ { 355c4758afSDavid du Colombier cd $backups/$set 365c4758afSDavid du Colombier progress=yes 375c4758afSDavid du Colombier tracks = `{hoc -e $tracks+1} 385c4758afSDavid du Colombier updprog 395c4758afSDavid du Colombier if (~ $debug yes) 405c4758afSDavid du Colombier echo $2 >>fake # pretend these are sealed 415c4758afSDavid du Colombier echo $2 >>ondisc 425c4758afSDavid du Colombier } 435c4758afSDavid du Colombier} 445c4758afSDavid du Colombier 455c4758afSDavid du Colombierfn quitonfailure { # exit-status 465c4758afSDavid du Colombier if (! ~ $1 '' 0 '|') 475c4758afSDavid du Colombier exit $1 485c4758afSDavid du Colombier} 495c4758afSDavid du Colombier 50*1c9e5a6cSDavid du Colombier# caller sets arenabase first 51*1c9e5a6cSDavid du Colombierfn arenastart { # arena# 52*1c9e5a6cSDavid du Colombier bytes = `{ echo $arenabase' + ('$1' * '$arenasize')' | bc } 53*1c9e5a6cSDavid du Colombier blocks = `{ echo $bytes' / '$blocksize | bc } 54*1c9e5a6cSDavid du Colombier echo $blocks 55*1c9e5a6cSDavid du Colombier} 56*1c9e5a6cSDavid du Colombier 575c4758afSDavid du Colombierbackupinit 58