[resolu] Pb execution de script

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server

Modérateur: modos Ixus

[resolu] Pb execution de script

Messagepar Bunk » 05 Juin 2004 13:41

Bonjour a tous,

Je voudrais programmer l'execution d'un script en passant par les templates. Je devellope :

dans /etc/e-smith/templates-custom/etc/cron.d/ j'ai placé un fichier qui s'apel down qui devrait s'executer tout les jours a 13heure, il contient :

Code: Tout sélectionner
0 13 * * * /bin/recup.sh


Le fichier recup.sh consiste à aller récuperer (via wget) un fichier sur un serveur distant et le copier dans un autre dossier, il contient notement :

Code: Tout sélectionner
#!/bin/sh

cd /tmp

wget http://www.serveurdistant.com/dossier/fichier.*

cp fichier.* /home/e-smith/files/primary/html/dossier

rm fichiers.*


J'ai fais plusieurs test mais le fichier ne s'execute pas. Pourtant manuellement il s'execute correctement via la commande sh recup.sh

Je me suis surement planté quelque part mais mes compétences ne sont pas sufisantes je crois !

Si vous pouviez m'aider, d'avance merci
Dernière édition par Bunk le 05 Juin 2004 17:12, édité 1 fois au total.
Avatar de l’utilisateur
Bunk
Contre-Amiral
Contre-Amiral
 
Messages: 396
Inscrit le: 22 Nov 2002 01:00

Messagepar Gaston » 05 Juin 2004 14:00

Bonjour,
si ton scripte fonctionne avec
Code: Tout sélectionner
# sh recup.sh
et pas en cron, cela suspecte fortement des pb de froits d'exécution du script.
pour vérifier cela fait un
Code: Tout sélectionner
# ./recup.sh

si ça ne marche pas , vérifie qu'il est bien en droits 750 ou équivalents :
rwxr-x--- => 750
r-xr-x--- => 550
rwxr-xr-x => 755

D'autre part si c'est un script "cron" je te conseille de mettre le chemin absolu pour wget ...

G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar Gaston » 05 Juin 2004 14:05

et fait également attention au droits des fichiers dans le rep du serveur (root:shared si je me rappelle bien)
G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar Bunk » 05 Juin 2004 14:59

Merci d'avoir répondu,

le fichier recup.sh a les droits 755 et root.root donc normalement ce devrait être bon ? je vais quand meme essayer en changant...

Sin qu'entend tu par chemin absolu pour wget ?

D'avance merci
Avatar de l’utilisateur
Bunk
Contre-Amiral
Contre-Amiral
 
Messages: 396
Inscrit le: 22 Nov 2002 01:00

Messagepar Gaston » 05 Juin 2004 15:12

Si c'est pas recup.sh qui a un pb ce peut être ton script "down"

chemin absolu : chemin à partir de la racine
Code: Tout sélectionner
/usr/bin/wget http://....... 
En effet il est relativement difficile de connaître les variables SHELL positionnées lors de l'exécution en "cron".
Soit, tu sais parfaitement et donc tu agis en conséquence, soit tu sais pas (ou t'a pas le temps de te poser la question) et tu met le maximum de chance de ton côté en définissant ton environnement SHELL.

Une des premières règles consiste à donner le chemin absolu d'accès à une commande. Dans le cas présent tu es tout de suite sur que ça marche pas si t'es en mode maintenance (/usr non monté) idem avec l'utilisation de /bin ou /sbin ... mais c'est hors sujet.

G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar Bunk » 05 Juin 2004 16:10

je pense que le probleme viens du fichier down !! car le fichier recup.sh marche impeccablement bien avec recup.sh et ./recup.sh

A par les droits je ne vois pas ce qu'il peut y avoir d'autre !

les droits de down dans /etc/e-smith/templates-custom/etc/cron.d/ sont comme suit :

644
root.root

donc ce sont les memes dans /etc/cron.d

Maintenant est ce que se serait possible que ca vienne de l'ecriture de ce fichier ?

voila ce qu'il y a dedans :

Code: Tout sélectionner
0 13 * * * /bin/recup.sh


Normalement ca devrait suffire vu que recup.sh a les droits 755. J'ai pas non plus de message d'erreur dans les log (aucune trace sauf quand je recharge le fichier)

J'ai essayé manuellement avec crontab -e mais cela ne fonctionne pas mieux.

Y'a quelque chose qui ne lui plait pas mais je ne vois pas bien!
merci
Avatar de l’utilisateur
Bunk
Contre-Amiral
Contre-Amiral
 
Messages: 396
Inscrit le: 22 Nov 2002 01:00

Messagepar sibsib » 05 Juin 2004 16:26

Salut,

Pour poursuivre ce que t'as dit Gaston :

remplace wget par
/usr/bin/wget

remplace cp par
/bin/cp

remplace rm par /bin/rm

Ensuite, plutôt que d'utiliser cron.d (un peu chatouilleux sur SME...) utilise plutot le fichier /etc/crontab :

mkdir -p /etc/e-smith/templates-custom/etc/crontab
vi /etc/e-smith/templates-custom/etc/crontab/S80recup

# lancement de recup.sh par le compte root tous les jours à 13 heures
0 13 * * * root /bin/recup.sh

/sbin/e-smith/expand-template /etc/crontab

A+,

Pascal
Sibsib, admin heureux d'un petit SME !!!
- SME 8.0 beta 6 dans une VM :-)
- ESXI 4.1 sur hardware noname
Ma petite page sur SME
Avatar de l’utilisateur
sibsib
Amiral
Amiral
 
Messages: 2368
Inscrit le: 11 Mai 2002 00:00
Localisation: France - région parisienne

Messagepar Bunk » 05 Juin 2004 17:04

J' edite volontairement, voir après la citation :

Alors j'ai suivi a la lettre vos explication mais y'a rien a faire en passant par les templates ca ne passe pas !

Par contre ca fonctionne avec crontab -e j'ai verifié le fichier /etc/crontab ma programmation est bien ecrite.

j'ai tout bon normalement, non ?




Merci a vous deux, j'ai appris beaucoup de choses et en plus ca fonctionne ! c'est formidable !!!
Avatar de l’utilisateur
Bunk
Contre-Amiral
Contre-Amiral
 
Messages: 396
Inscrit le: 22 Nov 2002 01:00


Retour vers E-Smith / SME Server

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron