A voir également:
- Aide pour un script
- Script vidéo youtube - Guide
- Bash script arguments - Astuces et Solutions
- Script download - Télécharger - Édition & Programmation
- Lancer script python linux - Forum Ubuntu
- Executer un script linux - Astuces et Solutions
3 réponses
Reivax962
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 009
12 avril 2010 à 13:49
12 avril 2010 à 13:49
Bonjour,
Le plus simple, à mon avis, serait de créer un champ dans une table qui indique si un script est en cours d'exécution ou non.
Au début de ton script, tu vérifies ce champ ; s'il indique qu'une occurrence est en cours, il s'arrête là (ou il attend, suivant tes besoins). Si aucune occurrence n'est en cours, il modifie cette valeur pour dire qu'il y a un script qui tourne. À la fin de son travail, il remet la valeur pour dire qu'il a fini.
Xavier
PS : un problème quand même, si le script se plante, le paramètre restera marqué comme "script en cours". On peut contourner le problème en indiquant une date de début d'exécution, et en considérant que si le paramètre indique qu'un script tourne depuis plus d'une heure, on considère qu'aucun script ne tourne.
Le plus simple, à mon avis, serait de créer un champ dans une table qui indique si un script est en cours d'exécution ou non.
Au début de ton script, tu vérifies ce champ ; s'il indique qu'une occurrence est en cours, il s'arrête là (ou il attend, suivant tes besoins). Si aucune occurrence n'est en cours, il modifie cette valeur pour dire qu'il y a un script qui tourne. À la fin de son travail, il remet la valeur pour dire qu'il a fini.
Xavier
PS : un problème quand même, si le script se plante, le paramètre restera marqué comme "script en cours". On peut contourner le problème en indiquant une date de début d'exécution, et en considérant que si le paramètre indique qu'un script tourne depuis plus d'une heure, on considère qu'aucun script ne tourne.
TomCody
Messages postés
10
Date d'inscription
lundi 12 avril 2010
Statut
Membre
Dernière intervention
13 avril 2010
12 avril 2010 à 18:55
12 avril 2010 à 18:55
Quelqu'un peut-il m'indiquer comment intoduire une boucle dans le scprit ci-dessous afin quil ne se morde pas la queue c'est-à-dire que la seconde ocurence ne s'exécute pas tant que la première n'est pas finie.
echo off
sqlplus der/vil@vildb @c:\maj\maj.sql
Merci
echo off
sqlplus der/vil@vildb @c:\maj\maj.sql
Merci
dubcek
Messages postés
18589
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 mars 2023
5 584
13 avril 2010 à 12:22
13 avril 2010 à 12:22
hello
echo off if exist %TMP%\lock ( echo message exit ) echo %0 en exécution > %TMP%\lock sqlplus der/vil@vildb @c:\maj\maj.sql del %TMP%\lock
TomCody
Messages postés
10
Date d'inscription
lundi 12 avril 2010
Statut
Membre
Dernière intervention
13 avril 2010
13 avril 2010 à 12:42
13 avril 2010 à 12:42
Merci, je vais le tester et vous tenir informé.
12 avril 2010 à 14:12
12 avril 2010 à 17:46
Merci
13 avril 2010 à 11:28
13 avril 2010 à 12:07
C'est un script sql qui me permet de me connecter à ma base de données et d'exécuter ensuite une commande oracle qui se trouve dans maj.sql. La commande oracle permet de réinitialiser les utilisateurs qui sont connectés à ma BD.
14 avril 2010 à 16:24
Sinon, la méthode de Dubcek devrait marcher aussi (attention à utiliser un nom de fichier peut-être un peu plus explicite, parce que si une autre appli met un fichier lock dans TEMP...)