bup-on(1)

πŸ’… bup-on β€” the manual, but make it make sense

okay bestie so this is bup-on(1) from the General Commands Manual, and it's literally the glow-up your backup routine has been waiting for. no cap. 🫢


✨ NAME ✨

bup-on β€” run a bup on a remote host, communicating with a local server 🌈

like... you stay comfy on your machine, the remote machine does the work, and they hold hands over ssh. it's giving long-distance relationship but functional. πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

bup on [user@]host[:port] index ...
bup on [user@]host[:port] save ...
bup on [user@]host[:port] restore ...
bup on [user@]host[:port] split ...
bup on [user@]host[:port] version ...
bup on [user@]host[:port] features ...
bup on [user@]host[:port] help ...

bup on [user@]host[:port] get ...
(Prefer bup get --source-url ssh://<hostname>...)

so the shape is always bup on [user@]host[:port] and then whatever subcommand you're feeling that day. put it in the group chat. πŸ“±

ngl, note that last pair β€” get works, but the page itself says Prefer bup get --source-url ssh://<hostname>.... it literally put the preferred thing in parentheses right there. read the parentheses. πŸ™ˆ

πŸ’– DESCRIPTION πŸ’–

bup on runs the command on the remote host via ssh, connected to a bup server running on the local machine, so that remote commands like bup save can back up to the local repository. it's an icon, it's a legend, and it's the moment. πŸ”₯

want the deets on any individual command? see bup-index(1), bup-save(1), and so on for the command details. iykyk, the per-command pages have you covered. πŸ“š

okay important, bestie, listen: you do not need to provide a --remote option. and you shouldn't. putting it there is not it. πŸ’€

this "reverse mode" is useful when the machine being backed up isn't supposed to be able to ssh into the backup server. like, it's not allowed. door's locked. no keys. πŸšͺπŸ”’

instead, the backup server β€” even if it's hidden behind a one-way firewall on a private or dynamic IP address β€” can connect to each of your important machines using an ssh key, and initiate a backup that saves the remote data to the local repository. so the server reaches out. the server makes the first move. main character energy, honestly. πŸ‘‘


🌸 EXAMPLES 🌸

first up, go index the files on the remote server. gentle little warm-up. ✨

# First index the files on the remote server

$ bup on myserver index -vux /etc
bup server: reading from stdin.
Indexing: 2465, done.
bup: merging indexes (186668/186668), done.
bup server: done

then we save the files from the remote server over to the local $BUP_DIR. this is the part where it all comes together. πŸ’–

# Now save the files from the remote server to the
# local $BUP_DIR

$ bup on myserver save -n myserver-backup /etc
bup server: reading from stdin.
bup server: command: 'list-indexes'
PackIdxList: using 7 indexes.
Saving: 100.00% (241/241k, 648/648 files), done.
bup server: received 55 objects.
Indexing objects: 100% (55/55), done.
bup server: command: 'quit'
bup server: done

and now the payoff β€” we can look at the resulting repo on the local machine. the way that bup ftp just shows you the goods directly?? obsessed. 😭

# Now we can look at the resulting repo on the local
# machine

$ bup ftp 'cat /myserver-backup/latest/etc/passwd'
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
...

πŸŽ€ SEE ALSO πŸŽ€

go read those too, they're all part of the same friend group. 🫢


πŸ‘‘ BUP πŸ‘‘

Part of the bup(1) suite. one big happy family. 🌈


πŸ’œ AUTHORS πŸ’œ

Avery Pennarun apenwarr@gmail.com β€” thank you for your service, legend. 🌟


that's the whole page, bestie. go back something up. slay. πŸ’…βœ¨

Bup 0.34 Β· 2026-09-01 Β· mwah, love you, bye πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from