gratifiant > linux.debian.user.french

JUPIN Alain (03/01/2014, 09h10)
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 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 !
Sébastien NOBILI (03/01/2014, 12h30)
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
moi-meme (03/01/2014, 19h10)
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.
JUPIN Alain (03/01/2014, 19h40)
Le 03/01/2014 11:22, Sébastien NOBILI a écrit :
[..]
> 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>
Pierre Malard (03/01/2014, 23h40)
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 <ajupin> a écrit :
[..]
Sébastien NOBILI (04/01/2014, 17h20)
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
Discussions similaires