Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications
Applications Questions sur l'utilisation d'applications, du shell, et des interfaces graphiques (KDE, Gnome, XFCE... )
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/05/2007, 15h17   #1
Candidat au titre de Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 30
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 30
Points : 10
Points : 10
Par défaut Execution de plusieurs script shell

Bonjour,

je me permet de solliciter votre aide car je rencontre un petit soucis.
J'ai plusieurs scripts shell (de quelques uns à plusieurs dixaines). Je dois les éxecutés toutes les 5 minutes.

J'ai donc créé une tâche cron ( */5 * * * * /var/update_* >/dev/null 2>&1 )
Le problème est que c'est uniquement le premier script shell (dans l'ordre alaphabétique) qui est éxécuté . Comment faire pour que tous soient éxécutés?

Merci par avance

Archange
ArChAnGe76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 15h27   #2
Membre actif
 
Avatar de Fango
 
Inscription : décembre 2005
Messages : 197
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2005
Messages : 197
Points : 178
Points : 178
si tu veux tous les executer, pourquoi ne pas creer un script qui les appelle tous, et c'est ce script que tu mets dans ta tâche cron (je sais c'est un peu tordu )
Fango est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 15h40   #3
Candidat au titre de Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 30
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 30
Points : 10
Points : 10
Merci de ta réponse rapide,

J'ai déjà essayé cette solution avec un script shell du genre :
Code :
1
2
3
4
5
 
for i in ls update_*
do
sh $i
done
Le script fonctionnait bien (j'avais mis des echo dans les update_*) mais les bases qui dépendent des scripts update_* (des bases rrd) ne se mettaient pas à jour.

Et là je suis dans une impasse. Mon patron va me descendre lol
ArChAnGe76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 15h43   #4
Membre actif
 
Avatar de Fango
 
Inscription : décembre 2005
Messages : 197
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2005
Messages : 197
Points : 178
Points : 178
tu veux dire que les scripts de mise a jour de tes bases se lancaient bien, mais tes bases n'etaient pas mises a jour?

tu es sur de tes scripts?
Fango est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 16h06   #5
Candidat au titre de Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 30
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 30
Points : 10
Points : 10
Alors oui et oui
Les scripts se lançaient bien car j'avais des sorties écrans (les valeurs à insérer dans la base correspondantes) mais les bases n'étaient pas mises à jour.
Pour les scripts je sais qu'ils fonctionnent car si je les lancent à la main, les bases se mettent bien à jour...
ArChAnGe76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 16h15   #6
Membre actif
 
Avatar de Fango
 
Inscription : décembre 2005
Messages : 197
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2005
Messages : 197
Points : 178
Points : 178
Du coup, je comprends pas du tout pourquoi ca marche pas... Et j'imagine que le truc bete qui consiste a appeler tous les scripts sans boucle mais "en dur" ne change rien. Si les scripts se lancent bien... je ne pensent pas que tes mises a jour s'annihilent non plus entre elles

Et si tu rajoutent des sortes de "commit" a chaque passage dans la boucle ? (oui je suis desespere ) parce qu'avec ce systeme, ca attend la fin du script lance avant de lancer les suivants ?
Fango est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 16h21   #7
Candidat au titre de Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 30
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 30
Points : 10
Points : 10
Bah en théorie oui il les lance un à un. De plus tous les scripts utilisent des bases différentes. Ton système de "commit" n'est pas faisable car les bases rrd (rrdtool) ne sont des bases SQL.

Mettre tous les scripts à éxécutés en dur dans un .sh, c'est lourd car comme je l'ai précisé dans mon premier message, j'ai de quelques scripts à plusieurs dixaines. De plus ils sont gérés dynamiquement par une appli web qui soit en génére des nouveaux soit en efface des existants.

Je t'avoue que moi aussi je séche...
ArChAnGe76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 16h26   #8
Candidat au titre de Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 30
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 30
Points : 10
Points : 10
Ah peut-etre que j'ai trouvé ... Réponse dans environ 15 minutes (le temps que le cron se lance qq fois)

ArChAnGe76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 16h26   #9
Membre actif
 
Avatar de Fango
 
Inscription : décembre 2005
Messages : 197
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2005
Messages : 197
Points : 178
Points : 178
Citation:
Envoyé par ArChAnGe76
Ton système de "commit" n'est pas faisable car les bases rrd (rrdtool) ne sont des bases SQL.
Oui, je m'en doutais (je ne connais pas ces bdd).

Citation:
Envoyé par ArChAnGe76
Mettre tous les scripts à éxécutés en dur dans un .sh, c'est lourd car comme je l'ai précisé dans mon premier message, j'ai de quelques scripts à plusieurs dixaines. De plus ils sont gérés dynamiquement par une appli web qui soit en génére des nouveaux soit en efface des existants.
Oui j'ai bien compris, mais c'etait dans une optique de test uniquement. Mais je ne pense pas que ca changerait quelque chose de toute facon.
Fango est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 16h38   #10
Candidat au titre de Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 30
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 30
Points : 10
Points : 10
Bah écoute là ca fait 2 tâches cron qui s'éxécute et les scripts sont bien éxécutés et les bases sont bien mises à jour

J'ai utilisé un script comme cités plus haut
Code :
1
2
3
4
5
6
7
 
#!/bin/sh
 
for i in /var/rrd/update_*
do
sh $i
done
Et bizarrement çà fonctionne... J'avais du faire une erreur la première fois

Je te remercie de ton aide ^^
ArChAnGe76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 16h41   #11
Membre actif
 
Avatar de Fango
 
Inscription : décembre 2005
Messages : 197
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2005
Messages : 197
Points : 178
Points : 178
Ouf ca me rassure
Juste par curiosite, ca marche avec le ls dans le script non (cf. ta 1ere version) ?
Fango est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 17h10   #12
Candidat au titre de Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 30
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 30
Points : 10
Points : 10
euh le ls était une erreur de ma part ^^

En effet le shell prend le ls comme une valeur de i. Donc il tente de faire "sh ls". Cela lève juste une erreur mais ne gene pas le reste de l'éxécution...

Voilà si tu as une autre question hésite pas..

Archange
ArChAnGe76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 17h12   #13
Membre actif
 
Avatar de Fango
 
Inscription : décembre 2005
Messages : 197
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2005
Messages : 197
Points : 178
Points : 178
Ok merci, ma curiosite est satisfaite
Fango est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h56.


 
 
 
 
Partenaires

Hébergement Web