STRyk!
2009-12-02 20:34:13 UTC
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
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