jfreundJFBackup
JFBackup

Features

One idea per chapter, from the first start to the script that runs at night. The screenshots come from the console with demo data.

Set up in a few steps

Setup assistant · server, connection or agent

When the console starts for the first time, an assistant asks what this computer should do: be the backup server, connect to a server that already runs elsewhere, or have itself backed up as an agent. For a server it asks for a data folder, whether the server is reachable only on this computer or on the network, the first administrator and a first repository. Then it registers the service, signs you in and opens the job wizard.

Nobody can sign up on their own: the first administrator comes from the server's one-time setup token, every further account is created by an administrator.

The welcome page of the setup assistant: three choices, backup server on this computer, connect to an existing server, and have this computer backed up as an agent.
The setup assistant's first question.

A job in seven steps

Name and type · source · target · retention · encryption · schedule · summary

A wizard walks you through every job. It backs up files and folders on the server or an agent, copies the restore points of another job to a second repository, writes the newest point to tape, saves an entire volume or backs up virtual machines.

Schedules run hourly, daily, weekly, monthly or by a cron expression, in any time zone, and the wizard lists the next runs. When the clocks change, a skipped time runs right afterwards and a repeated time only once. Retention keeps a number of points and daily, weekly and monthly ones; encryption with a passphrase and the compression level are set per job, and a switch turns on continuous protection.

The schedule step of the job wizard: weekly on Monday to Friday at 02:00 in the Europe/Berlin time zone, the next five runs, and the switch for continuous protection with its RPO.
The schedule step.

Every machine in one list

Servers and agents · operating system · status · last contact

The backup server and all agents appear in one list with their role, operating system, status, last contact and number of jobs. From here you pair a new agent with a one-time code, install one over SSH on a Linux machine, check a connection, change the folders a machine shares or remove it, which revokes its certificate.

Each agent shares two kinds of folders: the ones it backs up and the ones it may restore into. Nothing outside them is read or written.

The servers and agents page: seven hosts with Ubuntu, Windows Server and Debian, six online and one offline, with their last contact and number of jobs.
Servers and agents with demo data.

Restore without surprises

Restore point · content · target · options · summary

"Existing files are never silently overwritten" is the first line of the restore wizard, and it means it. You pick a restore point, choose the files and folders in it, then the target: the original place or another folder, on the server or an agent. For files that already exist you decide whether they are skipped, renamed or replaced.

Restored files are written next to their target and renamed only when they are complete, so a broken restore never leaves half a file behind.

The contents step of the restore wizard: the choice between everything and a selection, and the folder D:\Daten opened with two entries chosen.
The restore wizard.

Storage you can see into

Repositories · savings · immutability · tape

Every repository shows how full it is, how many restore points it holds, how much data they stand for and how much deduplication and compression save. It says whether the data is encrypted and for how many days restore points stay immutable, and it warns when less than a tenth is free. Checking and cleaning up run from the same page.

A virtual tape library writes complete restore points to tapes in files, in media pools with write protection, spanning tapes when one is full. Tapes can be read back without the repository, and even without the server.

The repositories page in the dark theme: three repositories with 4.70 TB, 18.6 TB and 400 GB free, their restore points, saved data, savings of about 2 to 3 to 1, encryption and immutability of off, 30 and 365 days.
Three repositories with demo data.

Every session on record

Sessions · operations · alerts · audit log · notifications

Monitoring lists every session with its result, duration and amount of data. Open one and you see how many files were read, how much was newly stored, how well deduplication and compression worked, and its log line by line. Further tabs show what is running right now, open alerts and the audit log of every change.

Failures, or every session, can be sent by e-mail and web hook, with a daily summary at a time you choose. A central server can also watch the JFBackup servers of other sites and show their jobs, storage and alerts on its own dashboard.

The monitoring page: a list of backup sessions with Success and Failed badges, and the details of one session with its duration, files, data read, newly stored data, a deduplication of 2.6 to 1, a compression of 1.8 to 1 and its log.

Virtual machines, straight from the backup

QEMU/KVM · instant start · merge · boot checks

On a Linux backup server, JFBackup finds QEMU/KVM machines and backs them up while they run, all disks at the same moment; the next run reads only the blocks that changed. A machine that is switched off is read from its disk files.

Instant start boots a machine straight from a restore point, without network or in an isolated network. Its writes go to a separate file and the restore point stays untouched. Merge moves the running machine into a folder of its own, stop throws the changes away. Boot checks start a restore point in the same isolated way, check that it keeps running, shows a text on its console or answers on a port, then discard everything and keep the result.

The instant start dialog: a restore point of the nightly VM job, the machine dc02, its memory and the choice between no network and an isolated network.
Starting a machine from a restore point.

Scripts and automation

bcctl · JSON output · clear exit codes

Everything a script needs is in bcctl, the command-line client: setting up a server, signing in, starting jobs and waiting for them, restoring, verifying, reading logs and the audit log, updates and signing your own releases. With --json it answers in JSON, and its exit codes tell a script what happened: 0 done, 1 refused or failed, 2 wrong usage, 3 no connection or an untrusted server.

# sign in once; an unknown server certificate authority is shown and confirmed
$ bcctl --server https://backup.corp.local:7642 login --user admin
# start a job and wait for the result
$ bcctl run "Mailserver" --wait
# restore a point into a folder, renaming files that exist
$ bcctl restore POINT --target /srv/restore --conflict rename --wait
# read a tape set without any server
$ bcctl tape extract TAPEFILE --to /srv/restore --kit KITFILE
Part of jfreund.orgBuilt with JFLibLegal noticePrivacy