Setting up a CrashPlan headless installationI own a subscription to the popular service CrashPlan to keep all my photos and documents safe on the cloud. I have a RaspberryPi continuously monitoring a NAS and backing up all new contents automatically. I control this headless installation via a GUI running on my main laptop. This has become a frequently widespread setup and until recently it was very well documented. Lately, when I had to reinstall the service and the GUI on a new laptop I upgraded both and I faced some configuration problems. I'd like to share the solution with you on this page.
InstallationInstallation is pretty straightforward and, although not official supported, is well explained in CrashPlan's official pages and in many other websites, so I won't repeat the process here.
My currently working version is CrashPlan 4.7.0 build 344. What works for me |
I have a RaspberryPi running the service (S), I control it via a Linux laptop running the Desktop (C).
I fixed my installation by:
I fixed my installation by:
- Leaving the original /usr/local/crashplan/conf/ui.properties on S, so that it looks like:
#Fri Dec 09 09:50:22 CST 2005
#serviceHost=127.0.0.1
#servicePort=4243
#pollerPeriod=1000 # 1 second
#connectRetryDelay=10000 # 10 seconds
#connectRetryAttempts=3
#showWelcome=true
#font.small=
#font.default=
#font.title=
#font.message.header=
#font.message.body=
#font.tab=
#serviceHost=127.0.0.1
#servicePort=4243
#pollerPeriod=1000 # 1 second
#connectRetryDelay=10000 # 10 seconds
#connectRetryAttempts=3
#showWelcome=true
#font.small=
#font.default=
#font.title=
#font.message.header=
#font.message.body=
#font.tab=
- Setting the serviceHost in /usr/local/crashplan/conf/ui.properties on C to the IP of S, so that it looks like:
#Fri Dec 09 09:50:22 CST 2005
serviceHost=192.168.178.31
#servicePort=4243
#pollerPeriod=1000 # 1 second
#connectRetryDelay=10000 # 10 seconds
#connectRetryAttempts=3
#showWelcome=true
#font.small=
#font.default=
#font.title=
#font.message.header=
#font.message.body=
#font.tab=
serviceHost=192.168.178.31
#servicePort=4243
#pollerPeriod=1000 # 1 second
#connectRetryDelay=10000 # 10 seconds
#connectRetryAttempts=3
#showWelcome=true
#font.small=
#font.default=
#font.title=
#font.message.header=
#font.message.body=
#font.tab=
- Editing the /var/lib/crashplan/.ui_info on C to [port].[key].[ip] where [port] is the standard 4243 port, [key] is the same key from the same file on S and [ip] is again the address of S. Mine looks like this:
4243,[key],192.168.178.31
- Not using the port forwarding (ssh -L 4200:localhost:4243 user@192.0.2.2) described in the official documentation on C.
Install the right Java version on S
On the Raspberry Pi it is required to install a Java version specific for ARM. As described here, you need to get Java SE 8, expand it, set the path in your OS, make the install.sh script of CrashPlan aware of it and then install CrashPlan.
Check engine status
The following command helps you check whether the engine is running:
sudo service crashplan status
Fixing Java error
As described here, should the engine not run because of the following error in the engine_error.log file:
/usr/local/crashplan/jre/bin/java: 1: /usr/local/crashplan/jre/bin/java: ^?ELF^A^A^A^B^C^A^P<84>^D^H4<90>: not found
/usr/local/crashplan/jre/bin/java: 2: /usr/local/crashplan/jre/bin/java: Syntax error: "(" unexpected
/usr/local/crashplan/jre/bin/java: 2: /usr/local/crashplan/jre/bin/java: Syntax error: "(" unexpected
the solution is changing the /usr/local/crashplan/install.vars variable JAVACOMMON to /usr/bin/java.
Fixing Java UnsatisfiedLinkError
As described here, should the engine not run because of the following error in the engine_error.log file
java.lang.UnsatisfiedLinkError: /usr/local/crashplan/libjtux.so: /usr/local/crashplan/libjtux.so: ...
the issue is caused by two libraries that are not ARM compatible (I'm running CrashPlan on a Raspberry Pi). It can be fixed by running the following commands:
$ sudo mv libjtux.so libjtux.so.x86
$ sudo wget http://www.jonrogers.co.uk/wp-content/uploads/2012/05/libjtux.so
$ sudo mv libmd5.so libmd5.so.x86
$ sudo wget http://www.jonrogers.co.uk/wp-content/uploads/2012/05/libmd5.so
$ sudo wget http://www.jonrogers.co.uk/wp-content/uploads/2012/05/libjtux.so
$ sudo mv libmd5.so libmd5.so.x86
$ sudo wget http://www.jonrogers.co.uk/wp-content/uploads/2012/05/libmd5.so