Home    Docs Sign Up    Log In

JARVYS
BETA


Documentation


0. Summary

A. What is JARVYS?
JARVYS is a simple backup solution for Linux servers. It includes a client and storage, so all that's required is a single command to install and automatically back up your server.

1. Requirements

A. Supported Operating Systems
JARVYS at the moment only works on 64-bit Linux hosts, and is known to work on the following distrbutions:


Arch Linux 2014+ 64-bit
RedHat/CentOS 6+ 64-bit
Debian 6+ 64-bit
Ubuntu 12.04+ 64-bit


B. Software
You'll need the following software installed on your server and accessible in $PATH:


curl
tar
rsync
ssh-keygen

These are usually installed by default in most Linux server distributions. If they aren't available, then you'll need to consult your distribution's manual on how to install it.

2. Installation

The installation process is almost entirely automated, and requires a single command to be run in your Linux server's terminal. The command will look something like this:


curl ...

Simply copy and paste the entire string into your terminal.

3. Configuration

Configuration is optional, and provides additional ways to tailor JARVYS for your needs.

A. Inclusion/Exclusion
By default all of the files on your server will be backed up automatically. This is ideal for non-complex servers, but in other cases such as network mounts it may be desirable to disable certain files and/or directories. To accomplish this, edit the /var/jarvys/etc/include file in your favorite text editor.


+ /
- /proc
- /sys

Above is the default configuration, '+' means include and '-' means exclude. If you want to exclude any other directories, for instance /mnt/nas, simply add it like so:


+ /
- /proc
- /sys
- /mnt/nas

If you wish to exclude all directories by default and only list the ones you want backed up (for example /root and /usr/local), you'll need to add it twice, like so:


+ /root
+ /root/**
+ /usr
+ /usr/local
+ /usr/local/**
- *

The double asterisks mean to include all files and subdirectories. Make sure to include the last line '- *' which means to exclude everything not included above.

B. Running scripts before backups
When running JARVYS on a server with a database, it's important to make sure that a crash consistent copy (typically a database dump) is included in the backups. In order to facilitate this, JARVYS includes an easy way to add scripts before the backups run.

Edit the file /var/jarvys/etc/run-before-backup.sh and add the commands to dump your database.

Disclaimer: please keep in mind this is an advanced feature, and as such it can break your backups in unexpected ways if used incorrectly. Use at your own risk, please be careful.

4. Updating

JARVYS automatically pulls updates from us, to ensure our clients receive bug and security fixes in a timely matter.

5. Adding Storage

If you want to upgrade your storage, simply contact us at [email protected] with the upgrade package. We are working to have this automated where you can upgrade from your dashboard.

6. Backing Up

Backups occur automatically on a daily basis and don't require any action on your part (unless you receive a notification saying otherwise). You can back up manually by running jarvys backup - although keep in mind that your snapshots are rotated every time.

7. Snapshots

Snapshots allow you to restore files from a specific point in time. For instance, if you backed up each day and deleted a file today, you could recover it from the snapshot in yesterday's backup.

8. Restoring Data

A. Simple Restore
The most important part of a backup solution is being able to restore the data in a reliable way. For example, we need to restore the directory /home/jdoe/project from the last backup, this is how we would do it:


jarvys restore /home/jdoe/project

The JARVYS client will then allow you to confirm the restore. Keep in mind that anything in the restore directory may be overwritten, make sure that nothing you want to lose is in there when performing a new restore.

B. Restore from a snapshot
Restoring from a snapshot has the same format as the previous command, except the number at the end denotes the number of days ago from the snapshot you want to restore. Using the same example, we want to restore the directory /home/jdoe/project from 2 days ago. The restore command would like this:


jarvys restore /home/jdoe/project 2

Notice there's a space between "project" and "2".

C. Restore from another server's backup
This feature is currently in development.

9. Uninstalling

To uninstall JARVYS, simply remove its work directory and two symlinks:

rm -rf /var/jarvys /etc/cron.d/jarvys /usr/sbin/jarvys