# CrashPlan

CrashPlan is a backup program that backs up data to remote servers, other computers, or hard drives. Backing up to the cloud servers requires a monthly subscription.

## Installation

Install crashplanAUR from the AUR. There is also crashplan-proAUR and crashplan-pro-eAUR available which are the paid enterprise packages.

## Basic Usage

Before accessing CrashPlan's graphical user interface, you should start the service:

    # systemctl start crashplan.service

CrashPlan can be configured entirely through its graphical user interface. To start the graphical interface:

    $ CrashPlanDesktop

To make CrashPlan automatically start upon system startup:

    # systemctl enable crashplan.service

## Running Crashplan on a headless server

Running CrashPlan on a headless server is not officially supported. However, it is possible to do so.

The CrashPlan daemon's configuration files (in `/opt/crashplan/conf`) are in an obscure XML format, and they are meant to be edited programmatically by the CrashPlan client. The CrashPlan client and daemon communicate on port 4243 by default. Thus, an easy way of configuring the CrashPlan daemon on a headless server is to create an SSH tunnel:

1. Start the CrashPlan daemon. On the server: `systemctl start crashplan.service`.
2. Create an SSH tunnel. On the client: `ssh -N -L 4243:localhost:4243 headless.example.com`.
3. Start the CrashPlan client. (Again, the executable is named `CrashPlanDesktop`.)

More ideas can be found on these websites:

- The CrashPlan support site details a slightly more complicated method of tunneling traffic from the client (CrashPlan Desktop) to the daemon (CrashPlan Engine) through an SSH tunnel.
- A post by Bryan Ross details how to make CrashPlan Desktop connect directly to CrashPlan Engine. Note that this method can be less secure than tunneling traffic through an SSH tunnel.

## Troubleshooting

### Waiting for connection

On some systems it can happen that CrashPlan does not wait until an internet connection is established. If using NetworkManager, you can install networkmanager-dispatcher-crashplan-systemdAUR which will automatically restart the CrashPlan service once a connection is successfully established.

### Waiting for Backup

If the backup is stuck on «Waiting for Backup» even after you engage it manually, it might be that CrashPlan cannot access the tempdir or it is mounted as `noexec`. It uses the default Java tmp dir which is normally `/tmp`. You can either remove the `noexec` mount option (not recommended) or change the tmpdir CrashPlan is using.

To change the tmpdir CrashPlan uses, open `/opt/crashplan/bin/run.conf` and insert `-Djava.io.tmpdir=/new-tempdir` to `SRV_JAVA_OPTS`, for example:

    SRV_JAVA_OPTS="-Djava.io.tmpdir=/var/tmp/crashplan -Dfile.encoding=UTF-8 …

Make sure to create the new tmpdir and verify CrashPlan's user has access to it.

    # mkdir /var/tmp/crashplan

Restart CrashPlan

    # systemctl restart crashplan

### Desktop GUI Crashes on startup

On systems with Gnome 3 installed, or with libwebkit-gtk installed, there may be an issue where the GUI crashes on launch. This can be fixed by following the instructions here.

### Out of Memory

For backup sets containing large numbers of files (more than 100,000 or so), the default maximum heap size of 512M may be too small. If this is filled, the server will silently restart, and will usually get stuck restarting as it continually reaches the memory limit. The only sign of this happening is the creation of many small log files in `/opt/crashplan/bin` for each service restart (potentially hundreds of thousands, depending on how long it takes to notice the problem). To increase the heap size limit, adjust the `-Xmx` option in `/opt/crashplan/bin/run.conf` to a reasonable value for your system.

## See also

- Backup programs
- CrashPlan home page
- CrashPlan On A Headless Server - Code42Support
- Wikipedia:CrashPlan

Categories:

- Data compression and archiving
- System recovery