Le client HubiC sous Debian

Alexandre 1 an

Nous sommes de plus en plus nombreux à être nomades et donc à vouloir que nos fichiers nous suivent partout. Ce désir nous force à choisir une solution de synchronisation de fichier et ce n'est pas toujours simple. En effet, les points à prendre en compte peuvent être nombreux : espace de stockage gratuit, facilité d'utilisation, respect de la vie privée, pérennité de la solution et sans doute d'autres critères qui vous seraient propres.

Personnellement, je n'ai pas trouvé de solution regroupant tout mes critères. Cependant, je me suis tourné vers HubiC parce que celui-ci répondait à deux critères sur lesquels je ne pouvais pas revenir : l'espace de stockage et le respect de la vie privée.

Concernant le premier point, HubiC me servira à accéder à mes fichiers où que je sois, mais également à sauvegarder mes photos, mon serveur et mes parties de jeux-vidéo. OVH avec son service, offre 25Go de stockage gratuit, ce qui est pas mal. Ayant un grand nombre de photos, je dois tout de même passé par l'offre payante, mais celle-ci est la moins cher du marché avec 100Go pour seulement 10€ par an.
Question vie privée, je n'en ai pas la preuve, mais le service est géré par une société française, les données sont hébergés sur des serveurs français et l'entreprise nous promet que les données stockées sont chiffrées. Ces points rassurent, même si ils ne garantissent rien.

Bon c'est pas le tout, mais si on installait ça sous Linux ?

Pré-requis

L'installation du client hubic en elle-même n'est pas compliquée, mais OVH à fait le choix de "porter" la version Windows en .Net sur Linux. Ce portage force l'utilisation de mono dont les versions précédents la 3.12 ne sont pas compatible avec le SSL.

"Mono on Linux before 3.12 by default didn't trust any SSL certificates so you got errors when accessing HTTPS resources." - bas de page du site www.mono-project.com.

Nous allons vérifier très simplement si nous disposons de la dernière version de mono en entrant la commande suivante :

Shell

apt-cache policy ca-certificates-mono

Dans le cas d'un message vous indiquant qu'il n'y a pas de paquet de ce nom, vous devrez ajouter le dépôt correspondant à votre distribution en suivant ces instructions (première étape uniquement). Dans le cas contraire, poursuivre.

L'autre seul pré-requis, disposer d'un compte HubiC.

Installation

L'équipe de développement a eu la bonne idée de fournir un .deb que nous allons pouvoir récupérer puis installer. Afin d'obtenir la dernière version, je vous renvoi sur cette adresse où vous récupérez l'adresse du lien pour le coller à la suite d'un wget.

Shell en root

wget http://mir7.ovh.net/ovh-applications/hubic/hubiC-Linux/2.1.0/hubiC-Linux-2.1.0.53-linux.deb -O /tmp/hubic.deb

Maintenant, nous installons le client :

Shell en root

dpkg -i /tmp/hubic.deb

La commande sort en erreur que nous allons résoudre en installant les dépendances :

Shell en root

apt install -f

Pour finir, installons le paquet permettant à mono de communiqué via SSL :

Shell en root

apt install ca-certificates-mono

Configuration

Sur le poste officiel du client Linux, il est fait mention d'un problème de configuration avec DBUS. Ce problème se résout en entrant la commande suivante :

Shell

export DBUS_SESSION_BUS_ADDRESS=`dbus-daemon --session --fork --print-address`

Connectons-nous à notre compte HubiC (remplacer identifiantHubic) :

Shell

hubic login identifiantHubic

Le mot de passe vous est demandé ; la saisie se fait totalement à l'aveugle, un copier-coller est donc recommandé pour ne pas faire d'erreur.
En théorie (pays lointain avec HubiC), vous devriez être connecté à votre compte. Avant de s'en assurer, nous allons redémarrer le client :

Shell

hubic stop && sleep 10s && hubic start

Maintenant que c'est fait, affichons le statu du client en le rafraichissant toutes les 2 secondes :

Shell

watch hubic status

Cette commande devrait vous renvoyer quelque chose de ce type :

State: Idle
Up: 0 B/s (0 B/s)       Down: 0 B/s (0 B/s)

Account: identifiantHubic
Synchronized directory:
Usage: 14,2 GB/25 GB

Last events:
        [10/08/2017 12:44:52|Info] Authentication in progress.
        [10/08/2017 12:44:58|Info] Welcome identifiantHubic.

Pour sortir de la commande watch, appuyer simultanément sur CTRL et C.

La configuration n'est pas terminée puisque pour l'instant le client ne fait rien. Deux choix cumulables s'offrent à vous :

  • synchroniser : permet de garder à l'identique un dossier local avec l'ensemble des dossiers stockés sur votre compte HubiC
  • sauvegarder : permet d'envoyer des fichiers selon une planification établie sans que ceux-ci ne soit accessibles via la synchronisation

Synchroniser

Activer la synchronisation est simple mais ça gestion est très mal pensée. En effet, le client Linux ne permet pas de choisir les dossiers distants que l'on souhaite synchroniser lorsqu'on active la synchronisation. Cela veut dire que l'ensemble de vos répertoires et leurs fichiers vont se répliquer en local.

La commande suivante permet donc de synchroniser tout mes fichiers distant (ormis les sauvegardes), vers le répertoire local /home/alexandre/hubic.

Shell

hubic syncdir /home/alexandre/hubic

Une fois cette commande saisie, la synchronisation commence ; on peut le vérifier avec la commande watch hubic status.
En lisant le manuel, vous trouverez une commande permettant d'exclure des dossiers, mais ne l'utilisant pas, je ne la détaillerais pas ici.

Sauvegarder

Là on touche à une partie vraiment sympa du client et celle-ci dépend vraiment de votre utilisation. A titre personnel, j'utilise la sauvegarde pour :

  • mes parties Steam et Uplay sous Windows
  • mes documents, mes photos, mes scripts personnels et mes conteneurs Proxmox sous Linux

Je n'entrerais pas dans les détails des paramètres que j'ai choisi ni pourquoi, puisque cela dépend vraiment de vos besoins. A vous de lire le manuel.

Les astuces

Démarrage automatique

Par défaut, le client ne se lance pas au démarrage de l'ordinateur sur lequel il est installé et ce pour la bonne raison qu'aucun script de démarrage existe. Afin de palier ce manque, j'ai créé deux fichiers :

L'installation des scripts se fait comme ceci :

Shell

wget https://framagit.org/alexandre.LG/shared_on_inios/raw/master/hubicSytemd -O /opt/hubicSytemd
chmod +x /opt/hubicSytemd
wget https://framagit.org/alexandre.LG/shared_on_inios/raw/master/hubicSytemd.service -O /etc/systemd/system/hubic.service
systemctl enable hubic.service

Gérer le client

A chaque nouvelle ouverture de session/terminal, vous perdez la possibilité d'administrer HubiC dû à la "mauvaise" configuration de DBUS. Pour résoudre le problème, je vous propose d'ajouter les lignes suivantes à la fin de votre fichiers ~/.bashrc :

Shell

# DBUS for HubiC
export DBUS_SESSION_BUS_ADDRESS=`cat /tmp/hubic.dbus`

Remerciements

Au début de l'été 2017, le client HubiC refusait de se connecter. Ce boggue avait pour origine la non prise en charge du SQL par les anciennes versions de mono (cf : Pré-requis). C'est en tout cas ce que j'ai découvert avec un collègue, McFouch, que je tiens à remercier.

Commentaire

Consulter

GOUDARD David - le #1

Bravo pour cet excellent travail !

Vraiment c'est de la dentelle !

Répondre

ironman34 - le #2

Bonjour,

Merci pour ton tuto cela marche impeccable. Je suis sous linux mint :-)

Bonne soirée,

Répondre

Reunig Kozh - le #3

Bonjour
Ça fonctionne nickel pour le lancer au démarrage mais dans la journée nous pensions mettre hubic en pause avec crontab pour éviter qu'il n'accapare l'adsl...
Nous avons essayé sur un serveur Ubuntu 16.04 avec crontab de mettre hubic en pause/resume ou le stop/start mais nos différents essais sont restés infructueux aussi bien avec le crontab de l'user ou de root ou dans /etc/crontab avec user ou root mais aussi avec un hubic simple ou la ligne complète avec mono
La réponse est toujours Cannot contact daemon, are you sure it is running?
Nous avons pu stopper le service dans crontab mais pas moyen de le relancer avec systemctl start hubic dans n'importe quel crontab (user, root)
Avez-vous une idée ?
Merci de votre aide ?
René

Répondre

Alexandre - le #4

Bonjour,

Si vous souhaitez l'utiliser avec cron, je vous recommande d'appeler directement le script avec les bonnes options : /opt/hubicSytemd [start|stop]
Le problème avec la commande "systemctl start hubic" est assez étrange, celle-ci s'exécute avec l'utilisateur défini dans le fichier de service.
Utiliser le client en ligne de commande force à exporter la session DBUS : export DBUS_SESSION_BUS_ADDRESS=`cat /tmp/hubic.dbus`. Bien entendu, il faut que la session ait été ouverte une première fois.

Répondre

Reunig Kozh - le #5

Bonsoir
Merci de cette réponse qui fonctionne mais hubic s’apparenta à la physique quantique, l'observateur a une influence sur les résultats d'une observation... ;-)
Ainsi le hubic status relance hubic s'il est en arrêt avec un hubicSytemd stop. C'est simple lorsqu'on a compris :-)
Un autre problème que nous venons d'observer. Lors d'un arrêt de 12h avec hubicSytemd stop, hubic semble avoir perdu ses paramètres de login. Si ça se confirme nous allons devoir au cours de journée le relancer et le stopper régulièrement
A suivre
Merci encore de votre aide
René

Répondre

Alexandre - le #6

Bonsoir,

Effectivement, je ne le précise pas dans l'article, mais afficher le status démarre effectivement le démon. On s'en rend bien compte si le démon est à l'arrêt et qu'on utilise la commande suivante : "watch hubic status".
Concernant votre problème, je pense que les paramètres de connexion sont placés dans le répertoire utilisateur (~/.config/hubiC/).

Répondre

Guillaume - le #7

Bonjour,

J'avais suivis se tuto et tout fonctionnait.

On a bougé l'ordinateur et cela ne fonctionne plus...

La commande syncdir ne fonctionne pas!

Il n'y plus de synchronisation...

Répondre

Alexandre - le #8

Bonjour,

Si vous lisez à nouveau cet article, vous devriez trouver où ça coince...

Répondre


Rédiger

Quelle est la dernière lettre du mot haop ?