Headless Crashplan en Cubietruck (Cubian)

Desde hace años estoy utilizando el servicio de backup en nube de Crashplan, deseaba hacer funcionar su software en mi nueva Cubietruck (Cubian desktop) que va a estar siempre activa ofreciendo además de este servicio de backup otros que quiero que corran de forma permanente como por ejemplo una VPN.

Con la documentación disponible en la red ha sido bastante fácil hacerlo funcionar.
 

Instalar Java:
Descargar JAVA desde la página de oracle.

La versión que nos descargaremos será ARMv6/7 Linux – Headless – Client Compiler EABI, VFP, HardFP ABI, Little Endian1.

La versión actual para esas características es: ejre-7u51-fcs-b13-linux-arm-vfp-hflt-client_headless-18_dec_2013.tar.gz

Dado que la versión de Cubian que he instalado es server y oracle requiere autenticación web para realizar la descarga, lo he descargado en otro PC y posteriormente lo he copiado a la Cubietruck.

Descomprimimos el archivo descargado:

tar -xvzf ejre-7u51-fcs-b13-linux-arm-vfp-hflt-client_headless-18_dec_2013.gz

Se debe mover el directorio a un lugar estándar del sistema de ficheros por ejemplo /opt/, personalmente he movido el directorio descomprimido a /opt y he creado un enlace simbólico llamado java
mv ejre1.7.0_5 /opt/
cd /opt/
ln -s ejre1.7.0_51 java

Se crean las variables de entorno:

sudo vi /etc/profile
Añadir :/opt/java/bin en la variable PATH=””
Añadir export JAVA_HOME=”/opt/java” al final del archivo

Para que el usuario root se vea afectado por estos cambios debemos inciar sesión root con:
su -

o modificar el archivo ~/bashrc
sudo vi ~/bashrc
Añadiendo las líneas:
PATH=/opt/java/bin:$PATH
JAVA_HOME=/opt/java
export PATH
export JAVA_HOME

Instalar CrashPlan:

Descargar el instalador desde la web de CrashPlan (actualmente la última versión es CrashPlan_3.6.3_Linux.tgz) desde la web y ejecutarlo:
sudo ./install.sh

Descargar las versiones parcheadas de las librerías libjtux y md5. Copiar los archivos .so en /usr/local/crashplan/ (sustituyendo las existentes, podéis hacer una copia previa).

Instalamos las librerías libjna-java (Dynamic access of native libraries from Java without JNI):

sudo apt-get install libjna-java

Para evitar un error que parece producirse del tipo “backup disabled — not available” debemos editar el archivo /usr/local/crashplan/bin/CrashPlanEngine y en la línea que comienza con FULL_CP= (esta cerca del start case) añadir /usr/share/java/jna.jar: al comienzo de la cadena de manera que, en mi versión, quedaría:

FULL_CP="/usr/share/java/jna.jar:$TARGETDIR/lib/com.backup42.desktop.jar:$TARGETDIR/lang"

Conectar el interfaz Crashplan:

La administración del servicio de Crashplan se hace a través de una aplicación que corre bajo entorno gráfico llamada Crashplan Desktop. Dado que el cubian instalado es server y no dispone de entorno gráfico, para configurar el servicio conectaremos Crashplan Desktop con el servicio de Crashplan instalado en el Cubietruck.

Para ello accederemos al puerto del servicio Crashplan de la Cubietruck desde Crashplan Desktop de otro PC.

Primero modificamos el puerto al que se conecta el Crashplan Desktop en el PC que esté instalado:

En linux:
vi /usr/local/crashplan/conf/ui.properties

En windows:
Editar (es posible que se deban cambiar los permisos del archivo):
C:\Program Files\CrashPlan\conf

Debemos cambiar la línea:
#servicePort=4243

por

servicePort=4200

Y abrir un tunel ssh para conectar el puerto local del Crashplan Desktop con el servicio en la Cubietruck:

En linux:
ssh -L 4200:localhost:4243 yourusername@2.2.2.2
Donde 2.2.2.2 es la ip de la Cubietruck.

En windows:
Conectamos al servidor de Crashplan con putty configurando en Connection => SSH => Tunnels y añadimos:

Source Port: 4200
Destination:localhost:4243

Fuentes:
http://www.bionoren.com/blog/2013/02/raspberry-pi-crashplan/
https://support.code42.com/CrashPlan/Latest/Configuring/Configuring_A_Headless_Client