# 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.

Another, simpler, way of running CrashPlan headlessly is to use ssh's X11 forwarding. Ensure that `X11Forwarding` is set to `yes` in the headless server's `/etc/ssh/sshd_config` and from another machine running X11, ssh to the headless machine with either `-X` or `-Y` and from the remote shell run `CrashPlanDesktop`. The headless machine's windows will appear on the local X11 server.

## 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[broken link: archived in aur-mirror] 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.

### Real time protection

If you use real time protection for your backup set and have a lot of files to backup, the default system configuration might not be able to allocate all required handle to follow all files in real time. This issue can manifest itself with logs like "inotify_add_watch: No space left on device" in the syslog journal. You can follow instruction here and configure inotify max_user_watches to a bigger value to fix the iusse.

### JRE Version Update

If, during upgrade, CrashPlan is attempting to upgrade the self-installed JRE version and the upgrade never gets passed downloading the JRE from CrashPlan (checking in logs/upgrade<unique_number>.log, the last message is a curl/wget for the "latest" JRE tgz), it's possible to stop CrashPlan, download the JRE (from the ugprade log) manually and replace the jre folder in the CrashPlan install with the upgrade version. This should allow CrashPlan to get past being stuck trying to upgrade the JRE.

     cd <crashplan/install/dir>
     ./bin/CrashPlanEngine stop
     rm -rf jre
     curl <jre url from crashplan log>
     tar xzvf <jre.tgz>
     ./bin/CrashPlanEngine start

## See also

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

Categories:

- Data compression and archiving
- System recovery

Hidden category:

- Pages with broken package links