Bug sur script lancé par cron

5 réponses
Avatar
JUPIN Alain
Bonjour la liste

C'est à ne rien y comprendre !

J'ai un script de backup qui fait les actions basiques suivantes :
- wakeonlan sur serveur de backup sur mon LAN
- rsync sur un serveur dédié distant (auth par clef ssh)
- rsync sur le serveur de backup de mon LAN (auth par clef ssh)
- arret du serveur de backup sur mon LAN

Si je l'exécute depuis la console (en root) -> RAS il fonctionne à
merveille.
Si je l’exécute depuis une tache cron (en root) -> ca bug !

Le 1er rsync :
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(605) [sender=3.0.9]

Le 2d rsync :
ssh: connect to host 192.168.0.14 port 22: No route to host
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(605) [sender=3.0.9]

Et le meilleur pour la fin (l’arrêt du serveur local par : ssh
root@192.168.0.14 halt)
ssh: connect to host 192.168.0.14 port 22: No route to host

Mais depuis la console je le pingue sans soucis car oui le wakeonlan
fonctionne !
Le serveur est up et çà pingue !

Une idée ?
Je suis sur Wheezy 64bits up to date !

--
Alain JUPIN
Lumières d'Ici ... et d'Ailleurs <http://www.jupin.net>

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/52C66068.1010404@jupin.net

5 réponses

Avatar
S
Bonjour,

Le vendredi 03 janvier 2014 à 8:02, JUPIN Alain a écrit :
Une idée ?



Oui, comparer les environnements !
Réduis ton script à la simple ligne suivante :
env > /tmp/env.out

Lance-le en console, lance-le par cron et compare les deux sorties. Sois
attentif aux variables suivantes :
- PATH,
- HOME,
- SHELL

Jamais touché au WOL, mais ça sent la commande pas exécutée en lancement cron
car pas trouvée dans le PATH, ensuite tout se casse la gueule…

Seb

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
moi-meme
Le Fri, 03 Jan 2014 08:10:01 +0100, JUPIN Alain a écrit :
j'ai eu des problèmes dans le genre : tentes avec le chemin complet des
fichiers de commande.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/52c6ea0d$0$2078$
Avatar
JUPIN Alain
Le 03/01/2014 11:22, Sébastien NOBILI a écrit :
Bonjour,

Le vendredi 03 janvier 2014 à 8:02, JUPIN Alain a écrit :
Une idée ?


Oui, comparer les environnements !
Réduis ton script à la simple ligne suivante :
env > /tmp/env.out

Lance-le en console, lance-le par cron et compare les deux sorties. Sois
attentif aux variables suivantes :
- PATH,
- HOME,
- SHELL

Jamais touché au WOL, mais ça sent la commande pas exécutée en lancement cron
car pas trouvée dans le PATH, ensuite tout se casse la gueule…

Seb



Bonsoir,

Les 3 variables PATH, HOME et SHELL sont identiques. Mais j'ai beaucoup
plus de variables via la console que via cron (dont un bon paquet liées
à Gnome) !

Pour le rsync distant, en s'authentifiant par user/mdp (et non par clefs
shh) çà fonctionne. J'ai recréée les clefs ssh et réinstallées celles-ci
sur le serveur dédié et problème résolu.

Le WOL marche très bien via cron. Car je vois bien le serveur sur le LAN
démarrer.
Avant le rsync sur le LAN je boucle jusqu'à ce que sa pingue (et les
logs de mon script montre que çà fonctionne)
Et surtout via la console, une fois le script de backup terminé je le
pingue très bien ;)

Donc encore un bug sur le rsync local ... à force je vais finir par
trouver ;)
Sinon je fais venir ghostbuster :D

Merci pour votre aide.


Alain JUPIN
Lumières d'Ici ... et d'Ailleurs <http://www.jupin.net>

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Pierre Malard
--Apple-Mail=_298BEBF4-BEB8-4A8B-8C59-7ECBCCA153BF
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=windows-1252

Il y a beaucoup de choses qui diffèrent entre une exécution sous shell et dans un cron. J'ai hésité à répondre car je ne me souviens plus très bien comment résoudre le problème lorsqu'il parait.

La solution de voir l'environnement est bonne, il suffit de compléter éventuellement... dans le shell lancé en cron.

Par contre, il me semble bien que le nombre le fichiers ouverts, le nombre de fork, … toutes ces variables d'environnement sont également différentes. Peut-être dans /proc... mais je ne m'en souvient vraiment plus.


Le 3 janv. 2014 à 18:36, JUPIN Alain a écrit :

Le 03/01/2014 11:22, Sébastien NOBILI a écrit :
Bonjour,

Le vendredi 03 janvier 2014 à 8:02, JUPIN Alain a écrit :
Une idée ?


Oui, comparer les environnements !
Réduis ton script à la simple ligne suivante :
env > /tmp/env.out

Lance-le en console, lance-le par cron et compare les deux sorties. Sois
attentif aux variables suivantes :
- PATH,
- HOME,
- SHELL

Jamais touché au WOL, mais ça sent la commande pas exécutée en lancement cron
car pas trouvée dans le PATH, ensuite tout se casse la gueule…

Seb



Bonsoir,

Les 3 variables PATH, HOME et SHELL sont identiques. Mais j'ai beaucoup plus de variables via la console que via cron (dont un bon paquet liées à Gnome) !

Pour le rsync distant, en s'authentifiant par user/mdp (et non par clefs shh) çà fonctionne. J'ai recréée les clefs ssh et réinstallées celles-ci sur le serveur dédié et problème résolu.

Le WOL marche très bien via cron. Car je vois bien le serveur sur le LAN démarrer.
Avant le rsync sur le LAN je boucle jusqu'à ce que sa pingue (et les logs de mon script montre que çà fonctionne)
Et surtout via la console, une fois le script de backup terminé je le pingue très bien ;)

Donc encore un bug sur le rsync local ... à force je vais finir par trouver ;)
Sinon je fais venir ghostbuster :D

Merci pour votre aide.


Alain JUPIN
Lumières d'Ici ... et d'Ailleurs <http://www.jupin.net>

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/



--
Pierre Malard

« Le socialisme vrai ne veut pas renverser l'ordre des classes ;
il veut fondre les classes dans une organisation du travail qui
sera meilleure pour tous »
Jean Jaures - "Les misères du patronat" - 1890

| _,,,---,,_
/,`.-'`' -. ;-;;,_
|,4- ) )-,_. , ( `'-'
'---''(_/--' `-'_)
perl -e '$_=q#: 3| 5-,3-3,2-: 3/,`.'"'"'`'"'"' 5-. ;-;;,-: |,A- ) )-,_. , ( `'"'"'-'"'"': '"'"'-3'"'"'2(-/--'"'"' `-'"'"'-): 22PLM::#;y#:#n#;s#(D)(d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--


--Apple-Mail=_298BEBF4-BEB8-4A8B-8C59-7ECBCCA153BF
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename=signature.asc
Content-Type: application/pgp-signature;
name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCgAGBQJSxy4CAAoJELzRDw+wKgIyuQcP/jxidGgpMHLSy8QubpnSt7+K
a9gvNCBD22eLU58eVYZtwd0+zRMuryxhPFDhIkDKpgJSiZ0tuqeKiu8CFkkaMON7
LFn0ZZczW0OLZ14omxtmmCJ6uDmnthrRLGjYRG4M8T4WI88onl/uLTqb8jmYAQwi
UP46/r6we+eZU2s+5VP6shcpQzDBiR6A0kF06Y0qURjL9ZbpgK89beCYd9yuwrF5
HffoIWqV/XtdrSyG5O3F5HhZc0fF8GqSIZVIPOVm6PNWwR/goRDEgxOxEfwn+QWH
Lt8zBG8IhTZqc5cBVCFNeeCatmoW99Ul+DxM9O0NPSVBL8m1IkhQDEzyuAsI5vgO
xgtNXrMq1TSEQHgRppSUGfuvRzGuygu5ZLnVCiPp4elVc1Qdlh+a9ExXGX1m6Qgu
1tOxZWgEbmx/NwLecwxrWyrKkDsrMuasYlciGl9jaGJxmGOFkzlXjBcV69dBZOYX
BHBZSsE3qCglRYYTzN5sPVVi4JLlRWAwAc2NieqjEBibn0tdHflDZ6N8TNqb1T/q
LJfG+sfo/RT58W7U6ubow3FIEWp3v2G+1NZaA+NL6KeSljDHKKv/ZyNsOUS0X4eL
EcTk63b527UpBFZe7CL4P5EcGPN+81QY7p5Dm3uB9SLVIQi1y0D3407aj+RgpCYB
RMF6bw+yJH7IBmX4MrZP
=RWDy
-----END PGP SIGNATURE-----

--Apple-Mail=_298BEBF4-BEB8-4A8B-8C59-7ECBCCA153BF--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Sébastien NOBILI
Bonjour,

Le vendredi 03 janvier 2014 à 18:36, JUPIN Alain a écrit :
Avant le rsync sur le LAN je boucle jusqu'à ce que sa pingue (et les
logs de mon script montre que çà fonctionne)



C'est pas parce que le serveur répond au ping qu'il est possible de s'y
connecter en SSH. Chez Debian, la connexion SSH est possible très tard dans la
phase de démarrage.

Es-tu sûr que tu attends suffisamment avant de te connecter à la machine ?
Tu pourrais mettre une tempo d'une minute ou deux pour le vérifier.

Seb

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/