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.
Contents
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:
- Start the CrashPlan daemon. On the server:
systemctl start crashplan.service
. - Create an SSH tunnel. On the client:
ssh -N -L 4243:localhost:4243 headless.example.com
. - 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