====== 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