Activation script a la demande

Fermé
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 - 23 juin 2008 à 10:04
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 - 26 juin 2008 à 07:42
Bonjour,
A travers une grille de saisie j'aurai besoin d'activer des traitements à la demande. Le test sera fait à partir d’un script lanceur qui contient les lancements de script quotidien et à la demande suivant la saisie à travers de la grille.

Le Lanceur:
#!/bin/ksh

####Debut du script Lanceur

Script_quotid1 #mon script de tous les jours à activer
Script_quotid2 #mon script de tous les jours à activer

if [ dem1 != 0 ]
then
echo 'Pas de planification du script demande1'
else
echo 'Il y a planification de la demande1'
fi
if [ dem2 != 0 ]
then
echo 'Pas de planification du script demande2'
else
echo 'Il y a planification de la demande2'
fi

Script_quotid3 #mon script de tous les jours à activer

####Fin du script Lanceur


Format de ma grille de saisie des demandes de travaux:

******************Grilles de siasie des demandes de travaux**************************
*****************Pour valider une demande de travaux saisir 1************************
Planification du script dem1 ===> 0
Planification du script dem2 ===> 0

******************Fin de la grille de saisie*****************************************

Remarque:
Dans la grille implicitement les demandes sont à 0 (non planifier).


Merci d'avance pour votre aide.
A voir également:

9 réponses

stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
23 juin 2008 à 21:04
Bonjour,
Je relance mon appel y a t-il quelqu'un qui à une idée sur la question.

Merci beaucoup
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
24 juin 2008 à 07:58
Salut,

Et que veux-tu exactement ? Moi j'avoue j'ai rien pigé à ton truc ;-\

Donc, comme toujours, essayez d'être précis dans vos demandes, avec des exemples et des explications concises, du style "avant => après" ou des commentaires bien imagés et non pas des remarques, et tant qu'à faire, les scripts en entier et non des bribes...

Désolé, mais si tu veux une aide, il nous faut davantage de détails ;-(
0
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
25 juin 2008 à 06:56
Bonjour,

Bon je vais essayer de te décrire ma demande.

Le but :
J’ai un script qui et lancé par cron à 19h00 ce script au nom de lanc_script contient des lancements de scripts quotidien (Script_quotid1 et Script_quotid2) ou à la demande (dem1 et dem2) .

Le contenu du lanc_script :
# !/bin/ksh

####Debut du script Lanceur

Script_quotid1 #mon script de tous les jours à activer
Script_quotid2 #mon script de tous les jours à activer

####Les scripts non quotidien
####Si la valeur et différente de 0 il y a exécution du script sinon on ne fait rien

if [ dem1 != 0 ]
then
echo 'La valeur de dem1 et égale à 1 alors il y a traitement '
####j’exécute le script dem1
./dem1
else
echo ‘La valeur et égale à 0 alors il n’y a pas de traitement dem1’
fi
if [ dem2 != 0 ]
then
echo 'La valeur de dem2 et égale à 1 alors il y a traitement '
####j’exécute le script dem2
./dem2
else
echo ‘La valeur et égale à 0 alors il n’y a pas de traitement dem2’
fi
#######Fin de mon script lanc_script

Le script dem1 et dem2 sont exécutés uniquement si la valeur et différente de 0.
Je souhaiterai mettre en place un menu ou je trouverai les choix de planification de mes 2 traitements.

Exemple de menu le menu et activer avant 19h00 pour planifier tous les demandes
Je lance le script menu_plan qui me renvoi le menu suivant à l’écran :

############Planification des demandes de travaux#################
#########Pour planifier une demande passer la valeur à 1############
Script dem1 planifier (1) choix :0
Script dem2 planifier (1) choix :0


############Fin du menu des demandes de travaux

Explication du menu :
Pour pouvoir exécuter le script dem1 je dois passer la valeur à 1 cette valeur sera testée dans mon script lanc_script .

Voila j espère être plus clair dans ma demande

Merci de l'aide
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
25 juin 2008 à 10:14
Une idée comme ça...

Programme une tâche quelques minutes avant le lancement de ton autre script qui te demande via la commande "read" et les options qui vont bien, de faire ton choix (0 ou 1</ital ) et envoie le résultat dans un fichier (<ital>echo "$resultat" > /tmp/fichier) avec par exemple un "timeout" (read -t xx) qui en cas de non réponse écrit une réponse par défaut, et depuis ton autre script il te suffit de comparer la valeur du contenu de "/tmp/fichier".

man bash ou help read pour plus d'explications...

;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
25 juin 2008 à 11:59
Non pas possible j'ai trop de script à la demande il me faut vraiment un menu qui à travers me donne tous mes traitements à la demande.
En faite ce menu sera chargé implicitement à 0 pour tous mes traitements à la demande donc non planifié.
Pour planifier je n'ai qu'une chose à faire appeler le menu (écrit en shell) et de choisir le traitement à planifier donc de mettre la valeur 1.

Nouvelle exemple de menu:

Traitement1 A LA DEMANDE mettre 1 si planifier choix --> 0
Traitement2 A LA DEMANDE mettre 1 si planifier choix --> 0
Traitement3 A LA DEMANDE mettre 1 si planifier choix --> 0
.
.
.
Traitement20 A LA DEMANDE mettre 1 si planifier choix --> 0

Chaque valeur sera testé dans mon script lanceur (lanc_script).
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
25 juin 2008 à 15:23
Ok, alors tu devrais regarder du côté de Xdialog (ou dialog si pas de serveur X), et plus particulièrement la fonction "checklist" qui m'a l'air faite pour ce que tu veux...

;-))
0
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
25 juin 2008 à 17:56
Merci pour l'info mais je penses avoir trouvé une solution.

Une petite présentation du script menu:

#!/bin/ksh
####
plan_dem1()
{
echo "il y a une demande de planification du traitement dem1" >>monrep/plan_dem_trvx
echo "dem1_plan" >monrep/dem1_plan
}
deplan_dem1()
{
echo "il y a une demande de deplanification du traitement dem1" >>monrep/plan_dem_trvx
>monrep/dem1_plan
}
plan_dem2()
{
echo "il y a une demande de planification du traitement dem2" >>monrep/plan_dem_trvx
echo "dem2_plan" >monrep/dem2_plan
}
deplan_dem2()
{
echo "il y a une demande de deplanification du traitement dem2" >>monrep/plan_dem_trvx
>monrep/dem2_plan
}
plan_dem3()
{
echo "il y a une demande de planification du traitement dem3" >>monrep/plan_dem_trvx
echo "dem3_plan" >monrep/dem3_plan
}
deplan_dem3()
{
echo "il y a une demande de deplanification du traitement dem3" >>monrep/plan_dem_trvx
>monrep/dem3_plan
}
menu()
{
clear
choix=0
while [ ${choix} != f ]
do
tput cup 1 25;echo "${sous}Menu de planification des demandes de travaux${rsous} "
tput cup 3 10;echo "1) Planification dem1"
tput cup 3 40;echo "2) Deplanification dem1"
tput cup 4 10;echo "3) Planification dem2"
tput cup 4 40;echo "4) Deplanification dem2"
tput cup 5 10;echo "5) Planification dem3"
tput cup 5 40;echo "6) Deplanification dem3"
tput cup 18 10;echo "f) Fin"
tput cup 20 20;echo "Choix :\c";read choix
if [ ${choix} = f ]
then
cat plan_dem_trvx|lp -dlpx
clear;exit
fi
case ${choix} in
1) plan_dem1;;
2) deplan_dem1;;
3) plan_dem2;;
4) deplan_dem2;;
5) plan_dem3;;
6) deplan_dem3;;
esac
done
}
menu
################################

Un flag et mis dans un fichier pour planifier le traitement
Un fichier trace de planification et généré et imprimé
Un demande peut-être déplanifié

Toutes ces options sont passées par le menu

Ainsi le script lanceur effectuera une vérification si le traitement et planifié ou pas à partir des fichiers flag.

Visu du menu:

Menu de planification des demandes de travaux

1) Planification Dem1 2) Deplanification Dem1
3) Planification Dem2 4) Deplanification Dem2
5) Planification Dem3 6) Deplanification Dem3



f) Fin

Choix :

Merci pour toute l’aide
Bonne Soirée
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
25 juin 2008 à 18:28
Merci pour cette solution.

A tout hasard je te mets ce que j'avais fait en m'inspirant de l'exemple de checklist de "Xdialog" :
#!/bin/sh
DIALOG=dialog
#DIALOG=Xdialog

$DIALOG --backtitle " \"Demandez le programme\"" \
        --title "Programme à la demande" \
        --checklist "Boîte de dialogue pour lancement de programmes à la demande\n\n
Choisissez les programmes à démarrer" 0 0 0 \
        "Programme1"  "Sauvegarde" off \
        "Programme2"  "Envoie de mail" off \
        "Programme3"  "Copie des fichiers log" off \
        "Programme4"  "Restauration" off \
        "Programme5"  "Compression" off 2> checklist.tmp.$$

retval=$?

choice=`cat checklist.tmp.$$`
rm -f checklist.tmp.$$
case $retval in
  0)
    echo "'$choice' chosen."
    for name in $choice
    do
    echo "Lancement de $name"
    done
    ;;
  1)
    echo "Cancel pressed.";;
  255)
    echo "Box closed.";;
esac
;-))
0
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
26 juin 2008 à 07:42
Ouah c'est complexe je vais essayer de comprendre ton exemple et de m'en inspirer.

Je te tiens au courant.

A+ Bonne journée
0