Same place as I found another useful script, dumpvacroots:

#!/bin/rc
# dumpvacroots - dumps all the vac scores ever stored to the venti server
# if nothing else, this illustrates that you have to control access
# to the physical disks storing the archive!

ventihttp=`{
    echo $venti | sed 's/^[a-z]+!([0-9\.]+)![a-z0-9]+$/\1/
        s/^[a-z]+!([0-9\.]+)/\1/; s/$/:8000/'
}

hget http://$ventihttp/index |
    awk '
         /^index=/ { blockSize = 0 + substr($3, 11) }
         /^arena=/ { arena = substr($1, 7) }
         /^    arena=/ {
            start = (0 + substr($5, 2)) - blockSize
            printf("venti/printarena -o %.0f %s\n", start, $3 "")
        }
    ' |
    rc |
    awk '$3 == 16 { printf("vac:%s\n", $2 "") }'

This definitely looks like it could be hacked to support an incremental dump of scores.

No printarenas there on my (9front) system, though. I'll have to see on a proper plan9 system, maybe.

On Tue, Dec 12, 2017 at 8:53 PM, Steve Simon <steve@quintile.net> wrote:
/sys/src/cmd/venti/words/printarenas

no idea why it lived there though.

-Steve


On 12 Dec 2017, at 18:33, Ole-Hjalmar Kristensen <ole.hjalmar.kristensen@gmail.com> wrote:

Hmm. On both my plan9port and on a 9front system I find printarenas.c, but no script. Maybe you are thinking of the script for backup of individual arenas to file? Yes, that could be a starting point.

Anyway, printarenas.c doesn't look too scary, basically a loop checking all (or matching) arenas. It seems possible to modify the logic to start at a specific offset.

Not running fossil at the moment, btw., my main file server is a Linux box, but I use vac for backup, both at home and at work. Fossil is definitely on my todo list, although the reported behavior when running out of space is a bit scary. Do you know why it does not simply block further requests while checkpointing to venti, or even better, starts a snapshot before it runs out of space?

On Tue, Dec 12, 2017 at 3:07 PM, Steve Simon <steve@quintile.net> wrote:
printarenas is a script - it walks through all your arenas at each offset.

You could craft another script that remembers the last arena and offset you successfully
transferred and only send those after that.

I think there is a pattern where you can save the last arena,offset in the local
fossil. Then you could mount the remote venti to check that last arena,offset
that actually arrived and stuck to the disk on the remote site.

On a similar subject I have 10 years of backups from a decomissioned work server
that I need to merge into my home venti one of these days...

-Steve