Okay, they're not actually "back," because we never had them before.
The most exciting new feature of bup 0.13 is that you can backup from
a *remote* server to your *local* machine, even if your remote server
has no way to ssh into your local machine.
You've been able to do it "forwards" since early versions of bup:
mydesktop:~ # bup save -r bupserver: -n mydesktop /
(to backup my local machine, 'mydesktop', to a branch on the remote
machine "bupserver"). However, if you're like me, that's not really
what you want. Having all the computers in the world able to ssh
*into* your backup machine is kind of crappy, even if you set it up so
they can only run bup. That machine has a full copy of *all* the
files on *all* your machines, including old versions, which is a major
security risk.
If you're like me, you want that backup machine hidden away behind a
firewall where nobody can get at it, and you want your backup machine
to make outgoing connections, not accept incoming ones. So if you're
like me, what you want is the new 'bup rbackup' command:
bupserver:~ $ bup rbackup root@mydesktop save -n mydesktop /
The rbackup command does some screwy stuff with file descriptors to
run the 'bup server' command locally, then forward its connection to
the remote 'bup save' instance, which then communicates with the local
server over the existing ssh connection. Notice that you don't need a
-r option in the above command.
This is great for backing up your public servers that are sitting on a
hosting provider, and pulling their contents down to, say, a computer
you have sitting behind a firewall at home.
Tip: if your remote server is Ubuntu and you have an Ubuntu server at
home, back up the local server first. Then when you back up your
remote server, it won't actually have to send all the duplicated
Ubuntu contents back to the bup server, thus saving you lots of time
and bandwidth. Naturally, backing up multiple similar (or even
cloned) public servers to the same repo will save you tons of
bandwidth and space.
In other news, thanks to Lukasz, who has once again provided the
patches needed to get the latest bup working on cygwin.
Avery Pennarun (8):
main.py: don't leak a file descriptor.
main: when printing help, don't mix stdout/stderr.
save-cmd: exit nonzero if any errors were encountered.
save/index/drecurse: correct handling for fifos and nonexistent paths.
options: allow user to specify an alternative to getopt.gnu_getopt.
client: Extract 'bup server' connection code into its own module.
rbackup-cmd: we can now backup a *remote* machine to a *local* server.
server: only suggest a max of one pack per receive-objects cycle.
Lukasz Kosewski (2):
lib/bup/index.py: mmap.mmap() objects need to be closed() for Win32.
cmd/index-cmd.py: How it pains me to have to explicitly close() stuff
Have fun,
Avery