Forum Linux.général Montage conditionnel d'un système de fichier

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
1
17
sept.
2017

Existe-t-il un moyen de monter un système de fichier partagé depuis un NAS lorsqu'on branche un ordinateur portable sur le sous réseau correspondant ?

Cerise sur le gâteau, existerait-il un système de fichier "mixte", qui permettrait par exemple d'éditer un fichier sur ledit portable, avec un cache local qui permetttrait de modifier le fichier en question lorsque le portable est déconnecté du réseau, et d'écrire les modif sur le NAS lorsque la connection est rétablie ?

Je tente de chercher via google (ou duckduckgo), mais sans succès (je ne sais pas trop quels mots clé mettre pour obtenir un résultat - je ne sais d'ailleurs pas si j'ai été clair sur ce que je veux donc n'hésitez pas à demander des précisions si vous n'avez pas compris).

Merci d'avance.

  • # Cloud ?

    Posté par  . Évalué à 2.

    C'est peut-être un peu overkill mais une solution de type NextCloud pourrait faire le Job.
    Avec le client de synchronisation, tes fichiers sont à jours sur ton laptop et il se synchronise quand tu te connectes.

    • [^] # Re: Cloud ?

      Posté par  . Évalué à 2.

      Pas forcément overkill, à partir du moment ou je me synchronise sur le nas de mon réseau local (je ne veux pas que mes données aillent dans le cloud). Piste à étudier mais j'aimerais des alternatives si vous connaissez.

      • [^] # Re: Cloud ?

        Posté par  . Évalué à 2.

        Je viens de regarder vite fait et à première vue, c'est un peu ce genre de truc que je recherche (surtout s'il y a possibilité de se synchroniser avec des machines Androïd) Ceci dit,toute proposition alternative est bienvenue.

        Ah, et j'oubliais : avec nexcloud, la synchronsation se fait-elle aussi du serveurs vers le portable ? Car il est possible que je modifie les données depuis une autre machine

        • [^] # Re: Cloud ?

          Posté par  . Évalué à 4.

          Ah, et j'oubliais : avec nexcloud, la synchronsation se fait-elle aussi du serveurs vers le portable ? Car il est possible que je modifie les données depuis une autre machine

          Oui, ça fonctionne dans les deux sens. Évidemment, si tu modifie des deux cotés en même temps, il va créé des fichiers de "conflit" qui portent un nom différent.

          « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

      • [^] # Re: Cloud ?

        Posté par  . Évalué à 3.

        Tu as aussi l'excellent Syncthing sur lequel j'ai fait un journal il y a quelques temps, et qui suivant ton usage pourrait être plus adapté qu'un "classique" cloud centralisé.

    • [^] # Re: Cloud ?

      Posté par  . Évalué à 1. Dernière modification le 20/09/17 à 13:51.

      Existe-t-il un moyen de monter un système de fichier partagé depuis un NAS lorsqu'on branche un ordinateur portable sur le sous réseau correspondant ?

      #!/bin/bash
      
      
      IpLocale="192.168.1.42" # l'adresse IP locale de votre serveur
      MacLocale="00:00:00:00:00:00" # l'adresse mac du serveur
      userForMount="myLocalUser" # l'user a utiliser sur votre ordinateur pour le montage
      LanMountPoint="/media/cloud" #point de montage en LAN
      WanMountPoint="/media/cloud" #point de montage en WAN
      
      
      
              # boucle qui permet d'attendre que le réseau soit connecté
      stop="0"
      while [ $stop -lt 1 ]
      do
      sleep 30       # temps d'attente entre chaque tentative
      
      _IP=$(hostname -I) || true
      if [ "$_IP" ]; then
              #printf "My IP address is %s\n" "$_IP"
              stop=1
      fi
      done
      
              #on check si le serveur est présent sur le même réseau
      arp -d $IpLocale # on vire la correspondance de l'IP dans le cache ARP
      ping $IpLocale -c 2 >> /dev/null 2>&1
      macRecover=$(arp -n | grep -i -o $MacLocale)
      
      if [ "$macRecover" == "$MacLocale" ]; then
      #        echo "local/vpn"
              su $userForMount -c "mount $LanMountPoint"
      else
      #        echo "tor/wan"
              su $userForMount -c "mount $WanMountPoint"
      fi
      

      avec un cache local qui permetttrait de modifier le fichier en question lorsque le portable est déconnecté du réseau

      Voir les outils de synchronisation (syncthing ou nextcloud-client|owncloud-client), les systèmes de fichiers distant (du moins ceux que j'ai testé: davfs, sftp, sshfs, glusterfs) n'ont pas ce genre de fonctionnement (risque de conflit puis quid en cas de pas de place sur machine locale?).

      Si vous codez un logiciel sans une interface chatoyante, alors vous faites de la merde. Donation bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

  • # Dbus et rsync

    Posté par  . Évalué à 2.

    Hello,

    Sans savoir t'expliquer comment faire, je crois que pour le montage automatique, tu dois pouvoir avec Dbus créer une règle qui dit de monter ton système de fichier quand ton pc se connecte à un certain WiFi.

    Pour la synchronisation, tu ajoutes à ta règle Dbus un script qui utilises rsync pour synchroniser du local vers le nas.

    Je serais intéressé de savoir quelle solution que tu trouves ou les blocages que tu rencontres.

    Julien_c'est_bien (y'a pas que Seb)

    • [^] # Re: Dbus et rsync

      Posté par  . Évalué à 4.

      Alternative: bricoler ça en posant dans /etc/NetworkManager/dispatcher.d/ un script qui teste le réseau et fait le montage. Sinon, avec systemd (forcément) ?

    • [^] # Re: Dbus et rsync

      Posté par  . Évalué à 2.

      Sans savoir t'expliquer comment faire, je crois que pour le montage automatique, tu dois pouvoir avec Dbus créer une règle qui dit de monter ton système de fichier quand ton pc se connecte à un certain WiFi.

      Et y aurait-il moyen de lui dire de démonter quand le PC n'est plus connecté ? Je crains des problèmes si un fichier est déjà ouvert.

      Je serais intéressé de savoir quelle solution que tu trouves ou les blocages que tu rencontres.

      Je ne sais pas si je vais aller jusqu'au bout (ce n'est qu'une idéepourle moment), mais si je faisquelque chose, je m'efforcerai de faire un retour ici.

      En gros, comme je l'ai déjà dit, je dispose de deux machines (un portable et un desktop), et le but est de tenterde me débarasser du desktop (en le transformant éventuellement en NAS). Sur ce NAS, j'aimerais avoir mon /home, le /home de mon épouse et de ma fille, et pouvoir sauvegarder tout ça sur une machine externe (style dedibox), avec chiffrage de mes données avant envoi (en gros je garde n cache local de mes sauvegardes chiffrées et je les réplique sur le serveur distant).

      Je n'ai pas encore l'architecture précise en tête (faut que j'estime la volumétrie, les risques que je suis prêt à courir sur mes données en effectuant une classification - données que je ne veux absolument pas perdre, données que je n'ai pas envie de perdre mais qui, si elles sont perdues, ben tant pis, et données que je peux perdre et reconstituer autrement, style certains de mes CD ou dvd que j'ai déjà rippés par exemple).

    • [^] # Re: Dbus et rsync

      Posté par  . Évalué à 2.

      DBus, c'est un protocole pour que les applications discutent ensemble, udev, c'est le bout de code qui surveille ce que dit le noyau afin de peupler /dev, et possède effectivement un système de règles (jamais mis le nez dedans cela dit).
      Du coup, je pense que: s/Dbus/udev/g

      Tant qu'a le faire manuellement ceci dit, j'aurai plutôt parlé, dans le cas ou il utilise une Debian (ou une de ses filles) d'utiliser le système d'évènements dans /etc/network/. S'il n'utilise pas Debian, ma foi… je ne sais pas.
      Il y a aussi sûrement moyen de faire ça via systemd, bien que je ne saurai pas le faire.

  • # Vieux trucs

    Posté par  (site Web personnel) . Évalué à 2.

    existerait-il un système de fichier "mixte", qui permettrait par exemple d'éditer un fichier sur ledit portable, avec un cache local qui permettrait de modifier le fichier en question lorsque le portable est déconnecté du réseau, et d'écrire les modif sur le NAS lorsque la connexion est rétablie ?

    Il me semble que c'était une des fonctionnalités de AFS / Coda / InterMezzo / Lustre / OpenAFS (voie les liens entre ces différents softs), la capacité à emmener et modifier des fichiers, qui étaient ensuite remis en ligne à jour sur le FS partagé.

    Mais pour un usage personnel, ça semble un eu massue. Comme indiqué dans d'autres posts un outil type owncloud/nextcloud serait plus simple à mettre en œuvre (il est peut-être même pré-packagé sur la plateforme de ton NAS).

    Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

    • [^] # Re: Vieux trucs

      Posté par  . Évalué à 2.

      D'ailleurs, l'existence d'un cache local implique l'existence d'un mécanisme de résolution des conflits qui pourraient apparaître lors d'une synchronisation ultérieure. Du coup, c'est amusant de voir le triptyque qui émerge, "cache local + résolution des conflits + synchronisation ultérieur", ressemble quand même beaucoup à un DVCS comme Git par exemple.

  • # Syncthings

    Posté par  (site Web personnel) . Évalué à 2.

    Pas forcément besoin d'être sur le réseau local pour que la synchro se fasse, dans un sens ou dans l'autre. De plus des options permettent de faire des backup automatiques des quelques précédentes versions.

    Cerise sur le gâteau, tu n'es plus limité par le nombre de machines pouvant faire la synchro.

    • [^] # Re: Syncthings

      Posté par  . Évalué à 1.

      J'utilise Syncthing pour cela. Par contre je spécifie expréssément que ça se passe uniquement sur mon réseau local. Quand je connecte mon téléphone et mon laptop sur le wifi de la maison les photos, scans et fichier keepass sont synchronisés.

      Par contre je l'utilise comme un outil de synchro pure sans backup. Les backups je les fais séparément depuis mon pc vers un stockage externe (via Borg).

  • # sshfs?

    Posté par  . Évalué à 2.

    Je me demande si sshfs ne pourrait pas te rendre service ici?

    Dès que tu ping un serveur qui a le bon hash, tu te connectes via le sshfs. Pour détecter quand tu ping le serveur, vu que tu n'as pas précisé ta distrib, je te renvoies à tes manpages, chez Debian tu peux exécuter des scripts au moment de la (dé)connexion à un réseau, il faut fouiller du côté de /etc/network/interfaces.

    Par contre, je ne sais pas du tout comment ça marche techniquement, si c'est caché ou pas. En fait, je ne suis pas sûr que ce soit une bonne idée, parce que pas mal d'applications risquent de bugguer, vu que je doute que le retour de fclose(3) soit souvent testé…

    En tout cas, tu aurais au moins l'aspect sécurisé, avec la souplesse qu'offre openssh sur la méthode d'identification.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.