Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
fusauto [Le 27/11/2010, 20:16] 88.255.111.84 zzufByUuXXRgh |
fusauto [Le 31/08/2022, 23:36] (Version actuelle) moths-art Passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | T0gl1k <a href="http://dncdncgmgedq.com/">dncdncgmgedq</a>, [url=http://cqjadcnhkkqb.com/]cqjadcnhkkqb[/url], [link=http://lbnsizylekqr.com/]lbnsizylekqr[/link], http://lsaycdvkgcsj.com/ | + | {{tag>administration}} |
| + | |||
| + | ---- | ||
| + | |||
| + | ====== FUSAUTO ====== | ||
| + | |||
| + | **FUSAUTO** est un script python pour faciliter l'usage de [[fuse | FUSE]]. Il a besoin d'un répertoire en paramètre, ce répertoire doit contenir un fichier de configuration utilisé par **FUSAUTO** et permet de monter / démonter ce répertoire avec [[fuse | FUSE]] automatiquement. | ||
| + | |||
| + | |||
| + | |||
| + | ===== Script python 'fusauto' ===== | ||
| + | |||
| + | Pour profiter de **FUSAUTO**, il faut créer le fichier contenant le script. | ||
| + | Deux options : | ||
| + | * soit vous l'incluez pour votre utilisateur seulement : [[:tutoriel:comment_editer_un_fichier|~/.local/bin/fusauto]] | ||
| + | * soit vous l'incluez pour tous les utilisateurs (nécessite [[sudo]]): [[:tutoriel:comment_editer_un_fichier|/usr/local/bin/fusauto]] | ||
| + | |||
| + | Y copier les lignes suivantes et sauvegarder. | ||
| + | |||
| + | <code python>#! /usr/bin/env python | ||
| + | # coding: utf-8 | ||
| + | # | ||
| + | # fusauto | ||
| + | # auto mount directory with fuse by reading a config file | ||
| + | # | ||
| + | # Copyright (C) Nicolas Albert <nicolas_albert_85@yahoo.fr> | ||
| + | # | ||
| + | # Version 0.0.1 | ||
| + | # | ||
| + | # This program is free software; you can redistribute it and/or modify | ||
| + | # it under the terms of the GNU General Public License as published by | ||
| + | # the Free Software Foundation; either version 3 of the License, or | ||
| + | # any later version. | ||
| + | # | ||
| + | # This program is distributed in the hope that it will be useful, | ||
| + | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| + | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| + | # GNU General Public License for more details. | ||
| + | # | ||
| + | # You should have received a copy of the GNU General Public License | ||
| + | # along with this program; if not, write to the Free Software | ||
| + | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
| + | |||
| + | import sys, os | ||
| + | |||
| + | def runconf(conf, path): | ||
| + | file = open(conf, "r") | ||
| + | act = {} | ||
| + | for line in file.readlines(): | ||
| + | if not line.startswith('#'): | ||
| + | part = line[:-1].partition('=') | ||
| + | act[part[0]] = part[2] | ||
| + | file.close() | ||
| + | if 'bin' in act: | ||
| + | if not 'from' in act: act['from']='none' | ||
| + | if not 'opt' in act: act['opt']='' | ||
| + | os.system("%s %s %s -o nonempty %s"%(act['bin'], act['from'], path, act['opt'])) | ||
| + | |||
| + | def getfuses(): | ||
| + | mtab = open("/etc/mtab", "r") | ||
| + | fuses =[ line for line in mtab.readlines() if line.split()[2][0:4] == "fuse" ] | ||
| + | mtab.close() | ||
| + | return fuses | ||
| + | |||
| + | def alreadymount(path): | ||
| + | for fuse in getfuses(): | ||
| + | fd = fuse.split()[1] | ||
| + | if fd == path or fd == os.getcwd()+'/'+path: | ||
| + | return True | ||
| + | return False | ||
| + | |||
| + | def umount(path): | ||
| + | os.system("/bin/fusermount -u "+path) | ||
| + | |||
| + | if __name__ == "__main__": | ||
| + | if len(sys.argv) == 2 and os.path.isdir(sys.argv[1]): | ||
| + | if alreadymount(sys.argv[1]): | ||
| + | umount(sys.argv[1]) | ||
| + | else: | ||
| + | conf = sys.argv[1]+'/fusauto.conf' | ||
| + | if os.path.isfile(conf): | ||
| + | runconf(conf, sys.argv[1]) | ||
| + | else: | ||
| + | print conf,"is required" | ||
| + | else: | ||
| + | print "One directory is required"'' | ||
| + | </code> | ||
| + | |||
| + | Il faut rendre le script exécutable : | ||
| + | ''chmod u+x ~/.local/bin/fusauto'' | ||
| + | ou | ||
| + | ''sudo chmod a+rx /usr/local/bin/fusauto'' | ||
| + | |||
| + | |||
| + | ===== Fichier de configuration 'fusauto.conf' ===== | ||
| + | Pour fonctionner, **FUSAUTO** a besoin d'un répertoire contenant un fichier de configuration du nom de **fusauto.conf** | ||
| + | |||
| + | Rien de mieux qu'un exemple ! | ||
| + | |||
| + | Je veux monter un répertoire distant d'une machine (siniath-tirith) dans le répertoire __~/Network/Siniath-Tirith__ à l'aide d'sshfs (créer le répertoire au besoin). | ||
| + | |||
| + | Je crée un nouveau fichier __~/Network/Siniath-Tirith/fusauto.conf__ dont le contenu est : | ||
| + | |||
| + | <note warning> | ||
| + | Il est important de ne mettre aucun espace avant le 1er signe égal sur les lignes qui ne sont pas des commentaires, sans quoi le script ne marchera pas correctement.</note> | ||
| + | |||
| + | <code># fusauto config file | ||
| + | # lines start with # are commentaries | ||
| + | |||
| + | # process must be run (must exist) | ||
| + | bin=/usr/bin/sshfs | ||
| + | |||
| + | # remote folder (default : none) | ||
| + | from=siniath-tirith:/mnt/big1/data | ||
| + | |||
| + | # fuse options (default : ) | ||
| + | opt=-o follow_symlinks,transform_symlinks,workaround=rename,idmap=user</code> | ||
| + | |||
| + | |||
| + | |||
| + | ===== Utilisation ===== | ||
| + | |||
| + | Il suffit d'appeler **FUSAUTO** avec en paramètre, un répertoire contenant un fichier de configuration. | ||
| + | |||
| + | **FUSAUTO** monte le répertoire s'il ne l'est pas déjà, sinon il le démonte. | ||
| + | |||
| + | === Shell === | ||
| + | ''fusauto ~/Network/Siniath-Tirith'' | ||
| + | |||
| + | === Nautilus === | ||
| + | On va utiliser la possibilité de [[nautilus_scripts|script pour Nautilus]] pour pouvoir monter/démonter directement. | ||
| + | |||
| + | Pour cela, on va lier le script dans le répertoire __~/.gnome2/nautilus-scripts__ : | ||
| + | |||
| + | <code>ln -s `which fusauto` ~/.gnome2/nautilus-scripts/</code> | ||
| + | |||
| + | Désormais, un clic-droit sur un répertoire propose 'Scripts>fusauto'. | ||
| + | |||
| + | === Rox-Filer === | ||
| + | On va utiliser la possibilité de script pour rox-filer pour pouvoir monter/démonter directement. | ||
| + | |||
| + | Pour cela, on va lier le script dans les répertoires __~/.config/rox.sourceforge.net/SendTo/.inode_directory__ et __~/.config/rox.sourceforge.net/SendTo/.inode_mount-point__ : | ||
| + | |||
| + | <code>ln -s `which fusauto` ~/.config/rox.sourceforge.net/SendTo/.inode_directory/ | ||
| + | ln -s `which fusauto` ~/.config/rox.sourceforge.net/SendTo/.inode_mount-point/''</code> | ||
| + | |||
| + | Désormais, un clic-droit sur un répertoire propose 'Rép. > fusauto'. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Liens et références ===== | ||
| + | |||
| + | * [[https://forum.ubuntu-fr.org/viewtopic.php?id=178262|Commentaires et discussion ici]]. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | //Contributeurs : NicoA380 [[http://forum.ubuntu-fr.org/profile.php?id=2745|+]].// | ||