Discussion:
Copie en "automation" lors de l'insertion d'une clef USB (Le Script)
(trop ancien pour répondre)
STRyk!
2009-12-02 20:34:13 UTC
Permalink
Hello, suite à ma demande et au retour d'aide que j'ai pu avoir, voici
le script que j'utilise pour sauvegarder régulièrement ma clé USB.
J'ai choisi une copie complète avec date et heure lors de l'insertion de
la clé. Bien sûr au bout d'un moment vous risquerez de vous trouver avec
beaucoups de dossiers, il suffirait de les effacer automatiquement avec
rsync par exemple, je ferais d'ici peu une version de sauvegarde avec
rsync. Mais le sujet premier n'est pas là: ce qui importe c'est une
sauvegarde automatique lors de l'insertion de la clé.

Voici en gros ce que j'ai pu faire ces derniers jours avec l'aide de JPP
et Anne. Je vous remercie encore pour les infos :)

#---------------------------------------------------------------------------------------------------
Il faut rechercher l'uuid du peripherique dont on veut le montage en
automatique:
-Inserer le périphérique (votre clé USB),
Puis:
# cat /etc/fstab
On trouve une ligne avec:
# /dev/xxx /media/yyy zzz pamconsole,exec,noauto,managed 0 0
Exemple:
# /dev/sda1 /media/CLE-USB vfat
pamconsole,noatime,sync,exec,noauto,managed 0 0
Utiliser:
# /sbin/blkid /dev/xxx
Il renvoi:
# /dev/xxx: LABEL="YYY" UUID="xxxnum_uuid_peripheriquexxx" TYPE="zzz"
Exemple:
# /sbin/blkid /dev/sda1
/dev/sda1: UUID="E2F8-3CED" TYPE="vfat"
L'UUID de la clé est ainsi trouvé.
#---------------------------------------------------------------------------------------------------

Tout d'abord créer le point de montage pour la clé USB:
# mkdir /media/usb/
Créer le script:
# vi /etc/hotplug.d/default/30-usbdisk.hotplug
#====8><=============================30-usbdisk.hotplug=============================================
#!/bin/sh
# recherche du device
DEVDIR=/dev
DEVNAME="age-$(echo ${DEVPATH} | sed -e 's;/;:;g')"
# Recheche si le periphérique qui vient d'être ajouté de type bloc:
if [ "${ACTION}" == "add" ] && [[ "${DEVPATH}" =~
^/block/sd[a-z]{1}/sd[a-z]{1}[0-9]{1}$ ]]
then
# on recherche le device
lecteur=`expr match "$DEVPATH" '.*\(sd[a-z]*[0-9]*\)'`
lecteur1="/dev/$lecteur"
#sleep 8 # temps necessaire a attendre pour que tout le processus
mette en place le lecteur ds dev
# faire une boucle de sleep 2 avec un exit si > 20 secondes
c=1
for (( c=1; c<=10; c++ ))
do
sleep 2
if [ -b $lecteur1 ]; then
break
fi
logger " starter-$$ attente du lecteur 1 $lecteur"
done
# peripherique de type bloc
if [ -b "$lecteur1" ]
then
sleep 2
UUID=`/sbin/blkid $lecteur1 -s UUID -c /dev/null|sed -e
's/.*"\(.*\)".*/\1/'`
echo "BANG1 -$UUID-$lecteur1- " >>/tmp/usb-temp.log
echo "BANG1 -$UUID-$lecteur1- "
echo "$UUID $lecteur1"
# Recherche si disque de sauvegarde insere : si oui, on le monte
# if [ "$UUID" == "xxxnum_uuid_peripheriquexxx" ]
if [ "$UUID" == "E2F8-3CED" ]
then
# echo "`date '+%F %T'` starter-$$ lancement du script de sauvegarde
sur $lecteur1 pour -$UUID-" >> /var/log/messages
logger -t hotplug "starter-$$ lecteur detecte, lancement du
script de sauvegarde sur $lecteur1 pour -$UUID-"
#mount -U "$UUID" /media/usb
#mount -t vfat $lecteur1 /media/usb
#mount $lecteur1 /media/usb
# On monte la clé (mon système est configuré en "iso8859-15" pour
samba & atalk):
mount -t vfat -o
uid=admin,gid=admin,pamconsole,exec,noauto,managed,iocharset=iso8859-15,codepage=850
$lecteur1 /media/usb
# ----------------- PARTIE SAUVEGARDE - DEBUT --------------------
DATESAUVE=`date +%Y-%m-%d_%Hh%Mm%Ss`
# Nom de l'utilisateur pour la sauvegarde de l' USB (ici "travail"):
USERSME=travail
mkdir "/home/e-smith/files/users/$USERSME/_CLE_USB_$DATESAUVE/"
cp -fr /media/usb/*
"/home/e-smith/files/users/$USERSME/_CLE_USB_$DATESAUVE"
mv -f "/home/e-smith/files/users/$USERSME/_CLE_USB_$DATESAUVE/"
"/home/e-smith/files/users/$USERSME/home/"
chown -vR $USERSME:$USERSME
"/home/e-smith/files/users/$USERSME/home/_CLE_USB_$DATESAUVE" >>
/root/droits1user-$USERSME.log
chmod -vR 755
"/home/e-smith/files/users/$USERSME/home/_CLE_USB_$DATESAUVE" >>
/root/droits1user-$USERSME.log
# ------------------ PARTIE SAUVEGARDE - FIN ---------------------
fi
fi
fi
# Recheche si peripherique enlevé
if [ "${ACTION}" == "remove" ]
then
sleep .2
rm -f /tmp/usb-temp.log
fi
#====8><=============================30-usbdisk.hotplug=============================================
Pour que le script soit utilisé:
# chmod 755 /etc/hotplug.d/default/30-usbdisk.hotplug

La clé peut être inserré et retirée après copie. On peut ajouter un
"beep" à la fin de la copie si besoin... tout est possible :)

STRyk 2009-12-02
STRyk!
2009-12-16 16:50:52 UTC
Permalink
Bin personne n'est interressé par le script ?
N'hésitez pas de proposer vos modif, ou si il y a des erreurs..
Jean-Philippe PIALASSE
2009-12-16 19:52:19 UTC
Permalink
Post by STRyk!
Bin personne n'est interressé par le script ?
N'hésitez pas de proposer vos modif, ou si il y a des erreurs..
je vais profiter des semaines a venir pour faire un rpm de ca.
mais je vais utiliser rsync plutot que de copier. ca prends moins de
place pour les copies incrementielles.

JP
STRyk!
2009-12-17 17:19:57 UTC
Permalink
Post by Jean-Philippe PIALASSE
Post by STRyk!
Bin personne n'est interressé par le script ?
N'hésitez pas de proposer vos modif, ou si il y a des erreurs..
je vais profiter des semaines a venir pour faire un rpm de ca.
mais je vais utiliser rsync plutot que de copier. ca prends moins de
place pour les copies incrementielles.
JP
Oui, rSync est bien plus adapté. Je n'ai pas voulu mettre mon script car
il n'est surement pas très parfait.
J'ai utilisé "beep-1.2.2-1rh71.i386.rpm" qui me permet d'émettre un
"bip" sonore lors de l'insertion de la clé USB, de la fin de la copie etc...
Pour une meilleur clareté je ne l'ai pas inclus dans ce que j'ai posté,
après tout est modifiable comme on veux bien sûr.
Jean-Philippe PIALASSE
2009-12-18 04:18:28 UTC
Permalink
Post by STRyk!
Post by Jean-Philippe PIALASSE
Post by STRyk!
Bin personne n'est interressé par le script ?
N'hésitez pas de proposer vos modif, ou si il y a des erreurs..
je vais profiter des semaines a venir pour faire un rpm de ca.
mais je vais utiliser rsync plutot que de copier. ca prends moins de
place pour les copies incrementielles.
JP
Oui, rSync est bien plus adapté. Je n'ai pas voulu mettre mon script car
il n'est surement pas très parfait.
J'ai utilisé "beep-1.2.2-1rh71.i386.rpm" qui me permet d'émettre un
"bip" sonore lors de l'insertion de la clé USB, de la fin de la copie etc...
Pour une meilleur clareté je ne l'ai pas inclus dans ce que j'ai posté,
après tout est modifiable comme on veux bien sûr.
je suis un amateur de beep aussi. as une une version rpm source de
beep ? "src.rpm", car pour le mettre sur les depots contribs c'est
necessaire.

JP
STRyk!
2009-12-18 18:33:17 UTC
Permalink
Post by Jean-Philippe PIALASSE
je suis un amateur de beep aussi. as une une version rpm source de
beep ? "src.rpm", car pour le mettre sur les depots contribs c'est
necessaire.
JP
J'ai ce lien directement:
http://www.johnath.com/beep/

;)

Continuer la lecture sur narkive:
Loading...