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 05/01/2013, à 00:07

insomniak

[script] bash et rsync : se perd lors de l'éxécution

Bonjour à tous,

Je suis actuellement en train de me créer un petit système qui me permet de faire un backup de mon serveur automatiquement lorsque je branche mon disque dur externe dessus.
Pour cela, j'ai une regle Udev qui permet de lancer un script bash lors de l'insertion du DD.
Dans mon bash :
- je fais le montage du disque
- je lance 4 commandes rsync permettant de faire mes backups
- je démonte le disque
- J'emet un bip m'indiquant la fin

Si j'execute mon script directement dans le terminal => tout fonctionne nickel
Si le script s'execute via la regle Udev, il se lance, execute bien les commandes Rsync mais à un moment donné, plouf plus personne.
Voilà ce que j'ai constaté : La synchro rsync est plutot longue vu qu'il y a du monde à backuper. Donc en gros, quand j'insere mon disque, il lance le backup. Un petit coup d'oeil dans les processus me montre qu'il est bien lancé. Puis lorsque je vois qu'il est dans la derniere ligne droite (je surveille un log pendant son execution comme ca je sais ou il en est), je reverifie les processus et là l'execution de mon script n'est plus dedans. Comme s'il y avait une sorte de timeout ou je ne sais quoi. Du coup, quand le bash a fini la commande rsync qui prend tant de temps, je ne sais pas ce qu'il fait vraiment. Soit le bash est killé ou bien il ne peut pas executer la commande suivante n'étant plus root, je ne sais pas du tout...
Là je seche complet et je ne vois pas du tout où chercher.
Auriez vous une idée de la provenance de mon probleme ?

Hors ligne

#2 Le 05/01/2013, à 10:12

credenhill

Re : [script] bash et rsync : se perd lors de l'éxécution

hello
les erreurs sont bien capturées ?

script >log 2>&1 

Hors ligne

#3 Le 05/01/2013, à 10:37

insomniak

Re : [script] bash et rsync : se perd lors de l'éxécution

Salut,

En fait j'ai pu voir sur le net qu'il y a un timeout sur udev qui kill les process trop longs. Cela évite d'avoir une machine qui freeze lors de l'insertion d'un nouveau périphérique ou alors au boot.
Donc je suis passé par un workaround trouvé sur le net très malin (mais pas forcément des plus propres) qui est d'avoir deux scripts :

le premier sert de relais et appelle le second (le script de backup) de cette façon :

/rep/de/scripts/script & exit

Du coup udev capte bien que le script relais s'est bien terminé directement et pendant ce temps là, le script de backup continue sa vie.

Hors ligne