#1 Le 29/06/2009, à 12:31
- seblem
[RESOLU] Udev + Backuppc + DD externe = Problèmes
Bonjour à tous,
J'utilise backuppc pour sauvegarder mes différents Pcs à la maison. J'effectue les sauvegardes sur un DD externe branché en usb sur le pc duquel est paramétré backuppc. Jusqu'à très récemment je lançais moi-même le service par un :
sudo /etc/init.d/backuppc start
Et puis je me suis mis en tête d'automatiser le démarrage après mettre intéressé à udev avec aussi un petit script qui stop le service et demonte le DD externe accessible par un lanceur quand les sauvegarde sont terminées.
Aujourd'hui ça marchotte, le problème est que plusieurs instances de backuppc sont lancées suite au branchement de mon DD externe.
J'explique maintenant ma démarche avec plus de détails.
Création d'une Règle udev 91-local.rules dans /etc/udev/rules.d :
SUBSYSTEMS=="usb", ATTRS{product}=="Iomega HDD USB 2.0 Drive", RUN+="/home/sebastien/bin/Backup_start.sh"
Ca fonctionne le fichier Backup_start.sh est bien éxéxuté.
Backup_start.sh :
#!/bin/sh
( /home/sebastien/bin/Backup_start2.sh ) &
Backup_start.sh est donc un script intermédiaire qui ne bloque pas le fonctionnement de udev et lui rend la main. Il éxécute ensuite le fichier Backup_start2.sh qui va attendre que mon dossier de sauvegarde /media/sauvegarde soit bien monté et lance ensuite le service de backuppc.
Extrait de Backup_start2.sh
#!/bin/sh
#Attend que le disque externe soit monté
while [ ! -d "/media/sauvegarde" ] ; do
sleep 1
done
#... Le disque externe est monté
/etc/init.d/backuppc start
J'imagine et espère même qu'il est possible de faire quelque chose de plus propre, dans l'immédiat la logique pourrait etre presque parfaite.
ps -aux | grep backuppc
backuppc 10849 0.0 0.2 9552 6804 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC -d
backuppc 10852 0.0 0.2 9560 6808 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC -d
backuppc 10857 0.0 0.2 9556 6800 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC -d
backuppc 10859 0.0 0.2 9548 6800 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC -d
backuppc 10861 0.0 0.2 9548 6800 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC -d
backuppc 10864 0.0 0.2 9556 6800 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC -d
backuppc 10865 0.0 0.2 9552 6804 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC -d
backuppc 10867 0.0 0.2 9556 6796 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC -d
backuppc 10868 0.0 0.2 9576 6804 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC -d
backuppc 10873 0.0 0.2 9824 7488 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC -d
backuppc 10874 0.1 0.1 6392 4604 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC_trashClean
backuppc 10875 0.1 0.1 6388 4608 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC_trashClean
backuppc 10878 0.1 0.1 6392 4604 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC_trashClean
backuppc 10879 0.0 0.2 9560 6800 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC -d
backuppc 10880 0.0 0.2 9544 6796 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC -d
backuppc 10882 0.1 0.1 6392 4608 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC_trashClean
backuppc 10883 0.1 0.1 6396 4608 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC_trashClean
backuppc 10885 0.1 0.1 6380 4612 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC_trashClean
backuppc 10886 0.1 0.1 6392 4600 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC_trashClean
backuppc 10887 0.1 0.1 6392 4608 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC_trashClean
backuppc 10889 0.1 0.1 6388 4612 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC_trashClean
backuppc 10891 0.1 0.1 6392 4604 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC_trashClean
backuppc 10895 0.1 0.1 6392 4600 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC_trashClean
backuppc 10897 0.1 0.1 6392 4604 ? S< 12:23 0:00 /usr/bin/perl /usr/share/backuppc/bin/BackupPC_trashClean
Ci dessous les processus multiples tournant sous l'utilisateur backuppc en précisant que ne devrait être éxécuté qu'une seule fois les processus BackupPC et BackupPC_trashClean.
Les conséquences actuellement sont que backuppc parait "patoger" avec toutes ces instances et qu'il est impossible de démonter le DD externe sans tuer toutes les instances de l'utilisateur backuppc :
sudo killall -u backuppc
Je pense que ce problème peut concerner tous utilisateurs s'intéressant à udev et souhaitant automatiser le branchement d'un périph externe. Merci par avance.
Seblem
Dernière modification par seblem (Le 09/07/2009, à 12:23)
Seblem, L'ambivalence valence du chinois noir.
Le système en temps réel (modif, création ...) Inotify
ssh + export display sur plusieurs sessions
Hors ligne
#2 Le 03/07/2009, à 09:42
- seblem
Re : [RESOLU] Udev + Backuppc + DD externe = Problèmes
Vous permettez que je réponde ?
Bonjour Seblem,
Je pense que tu t'es mélangé les pinceaux. Pourquoi ne pas directement utiliser la règle udev suivante :
SUBSYSTEMS=="usb", ATTRS{product}=="Iomega HDD USB 2.0 Drive", RUN+="/etc/init.d/backuppc start"
"Parce que j'étais persuadé que ça ne fonctionnait pas après de multiples tests"
Ok seblem mais maintenant tu te rends comtpe que ça marche alors es tu sur de ne pas t'être emmelé les pinceaux ?
"euh ..."
Je corrige dans le même temps ton script pour démonter ton DD qui n'avait aucun sens !
#!/bin/sh
sudo /etc/init.d/backuppc stop
#Attend que le disque externe soit démonté
while [ -d "/media/sauvegarde" ] ; do
umount /media/sauvegarde
sleep 1
done
#... Le disque externe est démonté
Cela dit je suis moi même limité dans l'explication du scénario présenté :
Si ça ne fonctionnait pas peut etre est ce parce que lors de tes premiers tests tu avais choisis une règle commençant par 10 et qu'elle était supplantée par une autre prioritaire et cela avait pour conséquence de pas lancer le service backuppc.
"Moi je pensais que lors de l'éxécution du service, le DD n'avait pas encore eu le temps de monter"
Ensuite par rapport à ton scénario présenté je n'ai pas de réponse à pourquoi plusieurs instances de backuppc tournaient simultanément alors que ce service ne peut se lancer qu'une seule fois à la main.
en tout cas bon courage!
Seblem
Dernière modification par seblem (Le 04/07/2009, à 23:26)
Seblem, L'ambivalence valence du chinois noir.
Le système en temps réel (modif, création ...) Inotify
ssh + export display sur plusieurs sessions
Hors ligne
#3 Le 03/07/2009, à 16:01
- seblem
Re : [RESOLU] Udev + Backuppc + DD externe = Problèmes
Nan Nan Nan Seblem ,
En fait le service démarre de façon aléatoire, il doit s'agir d'un problème de temporisation ....
Seblem (Udev et Backuppc nuivent gravement à la santé)
Seblem, L'ambivalence valence du chinois noir.
Le système en temps réel (modif, création ...) Inotify
ssh + export display sur plusieurs sessions
Hors ligne
#4 Le 09/07/2009, à 12:23
- seblem
Re : [RESOLU] Udev + Backuppc + DD externe = Problèmes
Bouquet final ->
Identification du périphérique :
sudo fdisk -l
Description du périphérique dans udev :
udevadm info -a -p $(udevadm info -q path -n /dev/sda)
Création d'un fichier 91-local.rules dans /etc/udev/rules.d/ contenant :
KERNEL=="sd?1", ATTR{size}=="488392002", ATTRS{manufacturer}=="Iomega", ATTRS{product}=="Iomega HDD USB 2.0 Drive", RUN+="/etc/init.d/backuppc start"
Ma précédente règle était erronée dans le sens ou elle n'était pas unique. Pour simplifier mes tests j'ai crée un script basique m'écrivant "1" dans un fichier et ainsi j'ai pu vérifier que ma commande n'était éxécutée qu'une seule fois.
#!/bin/sh
echo 1 >> /home/sebastien/Bureau/journal.txt
A noter qu'avec l'ancienne règle ma commande était éxécutée plusieurs fois au branchement de mon DD externe mais aussi à son débranchement. Avec un peu de recul la mise en place actuelle fonctionne.
Seblem
Seblem, L'ambivalence valence du chinois noir.
Le système en temps réel (modif, création ...) Inotify
ssh + export display sur plusieurs sessions
Hors ligne