Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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)

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 cool 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)

Hors ligne

#3 Le 03/07/2009, à 16:01

seblem

Re : [RESOLU] Udev + Backuppc + DD externe = Problèmes

Nan Nan Nan Seblem tongue ,

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é)

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

Hors ligne