logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 08-06-2021 22:07:46

rivileo
Membre
Inscription : 08-01-2018

monter démonter volume automatiquement

Bonjour,

Je souhaite savoir comment faire pour qu'un disque dur externe soit monté et surtout démonté automatiquement lorsque j'ouvre et je ferme une session.
J'ai bien trouvé comment monter automatiquement un volume à chaque connexion, mais pas comment le démonter à chaque déconnexion.

Pour information j'utilise Xfce 4.12.

Merci de votre aide

Hors ligne

#2 09-06-2021 02:59:01

TyZef
Membre
Lieu : Clan d'Eau.
Distrib. : ~ Debian 12 noDE ~ inspired by nakeDeb ~
Noyau : Linux 6.1.0-18-amd64
(G)UI : OB3
Inscription : 09-05-2013

Re : monter démonter volume automatiquement

Salut Rivileo !

Tu peux tenter ce script :

#!/bin/bash

for device in /sys/block/*
do
    if udevadm info --query=property --path=$device | grep -q ^ID_BUS=usb
    then
        echo Found $device to unmount
        DEVTO=`echo $device|awk -F"/" 'NF>1{print $NF}'`
        echo `df -h|grep "$(ls /dev/$DEVTO*)"|awk '{print $1}'` is the exact device
        UM=`df -h|grep "$(ls /dev/$DEVTO*)"|awk '{print $1}'`
        if sudo umount $UM
          then echo Done umounting
        fi
    fi
done


Suis les étapes suivantes:

1. "Tout Sélectionner" et copie le script ci dessus.
2. Colle le dans ton éditeur de texte genre Mousepad, Nano...
3. Sauvegarde le en tant que "format texte brut " et nome le "unmountonlogout". (sans extension genre .txt .odt...)
4. Ouvre ton dossier /usr/bin en tant qu'administrateur et place dedans une copie de ton script.
5. Ouvre ensuite un terminal...
6. Lance la commande suivante :

sudo xed /etc/lightdm/lightdm.conf


(tu peux remplacer "xed" avec le nom de ton éditeur de texte genre "gedit". Ceci va ouvrir ton éditeur de texte avec le fichier "lightdm.conf" situé dans  "/etc/lightdm" avec les droits d'administrateur.)
7. Dans ce fichier tu dois avoir la ligne suivante:

[SeatDefaults]

ou bien

[Seat:*]

Sous cette ligne , rajoutes:

session-cleanup-script=/usr/bin/unmountonlogout

Attention: assures-toi que ton script sois marqué en tant qu’exécutable, par exemple en lançant: 

sudo chmod +x /usr/bin/unmountonlogout


8. Sauvegarde puis quitte...
9. Redémarre ton ordinateur. (Parce que lightdm a besoin d’être redémarré.)

En espérant que cela t'aide...


« De deux choses lune, l’autre c’est le soleil » - Barbara Prévert.

Hors ligne

#3 11-06-2021 10:26:21

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : monter démonter volume automatiquement

Bonjour,

attention avec ce script sans tests : si d'aventure il y a un jour plusieurs périphériques usb branchés, ils seront tous démontés.

Pour s'en assurer, on peut ajouter une ligne :

        ...
        echo `df -h|grep "$(ls /dev/$DEVTO*)"|awk '{print $1}'` is the exact device
        UM=`df -h|grep "$(ls /dev/$DEVTO*)"|awk '{print $1}'`
        echo "$UM is the exact device--ajout"    # ajout de cette ligne
        if sudo umount $UM
        ...


Exemple chez moi avec 2 clés usb branchées :

Found /sys/block/sdc to unmount
/dev/sdc1 is the exact device
/dev/sdc1 is the exact device--ajout
Found /sys/block/sde to unmount
/dev/sde1 is the exact device
/dev/sde1 is the exact device--ajout


Note : il n'y a pas de sdd car ce nom a été utilisé, pendant mes manips, par une clé contenant un iso bootable, donc reconnu par le système mais pas par le système de montage; je l'ai donc enlevée mais ça n'a pas libéré le nom.

EDIT
Et comme quelqu'un dit (souvent !) sur un autre forum qu'

on n'utilise pas ls dans les scripts

, j'ai récrit le bazar sans ls et sans df dans la foulée, à cause des changements de nom (sdb qui devient sda par ex.), j'ai rajouté deux ou trois commentaires et lignes de test (à décommenter pour voir ce que ça fait [chez moi après le #]) et ça donne ça :

for disk in /sys/block/*
do
  # 2 lignes pour supprimer les /loopX et srX (cd-dvd)
  d=${disk:0:13}
  { [ $d = "/sys/block/lo" ] || [ $d = "/sys/block/sr" ] ;} && continue
#echo $disk # /sys/block/sda, /sys/block/sdb, /sys/block/sdc, etc
 
  # 1 ligne pour ne garder que les périph connectés à l'usb
  ! $(udevadm info --query=property --path=$disk | grep -q ^ID_BUS=usb) && continue
  DEVTO=$(echo "$disk"|awk -F"/" 'NF>1{print $NF}')
#echo "DEVTO = $DEVTO" # le(s) sd trouvé(s)

  # pour chaque partition (car il peut y en avoir plusieurs) du périph en cours,
  for part in $disk/sd*
  do
    part_for_job=${part/${part:0:14}/"/dev"} # remplace "/sys/block/sdx" par "/dev"
    # afficher son nom "machine"
    echo "Partition $part_for_job de $DEVTO"
    # et en faire ce qu'on veut ici.
  done
done


Chez moi avec deux clés :

Partition /dev/sdc1 de sdc
Partition /dev/sde1 de sde



EDIT2 :
Ensuite, j'ai repris le script avec ls et df, et j'ai rajouté dans les deux scripts, une boucle :

i=0
while [ $i -lt 100 ]
do
((i++))
# code utile
done

et j'ai fait exécuter avec "time" devant l'appel aux scripts.
Résultat du script avec df et ls :

real  0m2.414s
user  0m0.080s
sys   0m0.180s

sans :

real  0m1.110s
user  0m0.084s
sys   0m0.056s


Y a pas photo, hein.
Thant's all, folks !

Dernière modification par jpt (11-06-2021 11:51:59)


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

#4 11-06-2021 12:32:36

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : monter démonter volume automatiquement

Hello
Je vois que on sort la grosse artillerie
Partant du constat qu'une clé USB a toujours le même point de montage par défaut en s'appuyant sur son label ou en l'absence son uid
je relève la ligne qui correspond a ma clé grâce a la commande mount
Et j'inscris dans mon script

cat umount_usb.sh


#!/bin/bash
umount /media/stephane/40B7-7A3A



Puis comme dit Tyzef
session-cleanup-script=/home/stephane/umount_usb.sh

voila qui fonctionne au poil
comme dirait l'autre what else woohoo.gif

edit:au pire si on a vraiment trop de clé USB différente a paramétré
on peut carrément mettre dans le script

umount /media/stephane/*

Dernière modification par Croutons (11-06-2021 14:50:38)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

En ligne

Pied de page des forums