====== Montage automatique d'un média USB ====== * Objet : script de montage usb * Niveau requis : {{tag>avisé}} * Commentaires : //montage usb avec openbox et xfe // * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) ===== Introduction ===== ===== Installation ===== ====Médias connectés à l'ouverture de la session==== créer un dossier ~/.bin et y mettre le script ci-dessous (que nous appellerons massmount) #!/bin/sh udisksctl dump | awk -F':\n' -v'RS=\n\n' '/[ \t]*HintAuto:[ \t]*true/&&/\.Filesystem:/{ print $1 }' | while read dev do udisksctl mount --object-path "${dev##*/UDisks2/}" done rendre le script exécutable chmod ug+x ~/.bin/massmount créer un fichier .xsessionrc dans votre /home PATH=$HOME/.bin:$PATH créer un fichier massmount.desktop que nous placerons dans ~/.config/autostart/ [Desktop Entry] Encoding=UTF-8 Exec=massmount Name=Automatically mount removable media Comment= Terminal=false Type=Application StartupNotify=false NoDisplay=true avec tout ça, les medias usb connectés seront montés automatiquement à l'ouverture de la session. -------------------------------- ====Montage automatique des médias quand on les connecte==== https://wiki.archlinux.org/index.php/Udisks#inotify créer un script que nous appellerons automount et que nous placerons dans ~/.bin #!/bin/bash pattern='sd[b-z][1-9]$' coproc inotifywait --monitor --event create,delete --format '%e %w%f' /dev while read -r -u "${COPROC[0]}" event file; do if [[ $file =~ $pattern ]]; then case $event in CREATE) echo "Settling..."; sleep 1 udisksctl mount --block-device $file --no-user-interaction ;; DELETE) ;; esac fi done le rendre exécutable chmod ug+x ~/.bin/automount créer un fichier automount.desktop que nous placerons dans ~/.config/autostart/ [Desktop Entry] Encoding=UTF-8 Exec=automount Name=Automatically mount removable media Comment= Terminal=false Type=Application StartupNotify=false NoDisplay=true inotifywait sera lancé au démarrage de la session et surveillera les changements de /dev, et montera automatiquement les media usb que nous connecterons. -------------------------------- ====Montage / Démontage des médias USB==== script à placer dans le dossier **/bin** utilisateur\\ utilisation de **udisks2** #!/bin/sh # udisks2 doit être installé demonte() { udisksctl dump | awk -F':\n' -v'RS=\n\n' '/[ \t]*HintAuto:[ \t]*true/&&/\.Filesystem:/{ print $1 }' | while read dev do # udisksctl mount --object-path "${dev##*/UDisks2/}" udisksctl unmount -p "${dev##*/UDisks2/}" done } monte() { udisksctl dump | awk -F':\n' -v'RS=\n\n' '/[ \t]*HintAuto:[ \t]*true/&&/\.Filesystem:/{ print $1 }' | while read dev do # udisksctl mount --object-path "${dev##*/UDisks2/}" udisksctl mount -p "${dev##*/UDisks2/}" done } usage() { #echo "test" notify-send "Usage: $0 [-u] [-m]" "\-u unmoun - démonte les médias usb \n-m mount - monte les médias usb" } echo "$0 $1" if [ -n $1 ] && [ "$1" = "-m" ] then monte elif [ -n $1 ] && [ "$1" = "-u" ] then demonte else usage fi ===utilisation :=== sev-usb -u -> démonte l’ensemble des médias usb\\ sev-usb -m -> monte l'ensemble des médias usb =====Liens===== * http://ubuntuforums.org/showthread.php?t=2258883&page=2 * https://wiki.archlinux.org/index.php/Udisks#inotify