Script bash exécution dans une plage horaire définie

Résolu/Fermé
chrisgdl3 Messages postés 23 Date d'inscription lundi 18 juin 2012 Statut Membre Dernière intervention 3 décembre 2013 - 7 janv. 2013 à 14:18
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 8 janv. 2013 à 10:20
Bonjour,

je voulais avoir vos conseils pour mettre en oeuvre un petit script bash:

- lorsque le script se lance s'il est en dehors d'une plage horaire définie, celui-ci s'arrête.


exemple:
entre 8h et 10h du matin: si le script test.sh se lance, il fait un check et donc s'arrête.

parcontre s'il s'éxécute à 7h, il s'exécute correctement.

5 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
7 janv. 2013 à 14:24
Salut,

Tu définis une variable avec l'heure courante (man date) et tu fais un test pour savoir si elle est comprise entre tes 2 heures de référence...
0
chrisgdl3 Messages postés 23 Date d'inscription lundi 18 juin 2012 Statut Membre Dernière intervention 3 décembre 2013 1
Modifié par chrisgdl3 le 7/01/2013 à 15:01
Salut zipe, merci de ton aide j'avais pensé à faire quelque chose comme ça
mais je ne suis pas sûre.

--------------------------
set variable heureDebut
set variable heureFin

check currentHour

if currentHour appartient [heureDebut - heureFin]

--> exécuter le script

else go functionAbord
echo "opération abordée"
--------------------------

Tu aurais une petite idée de comment rédiger ce petit script.
Merci d'avance.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
7 janv. 2013 à 15:13
A adapter en remplaçant les variables début et fin :

$ currentHour=$(date +%H)

$ heureDebut=15;heureFin=16

$ if [ ${currentHour} -lt ${heureFin} -a ${currentHour} -ge ${heureDebut} ]
then echo OK
else echo NOK
fi
OK

$ heureDebut=14;heureFin=15

$ if [ ${currentHour} -lt ${heureFin} -a ${currentHour} -ge ${heureDebut} ]
then echo OK
else echo NOK
fi
NOK

$
0
chrisgdl3 Messages postés 23 Date d'inscription lundi 18 juin 2012 Statut Membre Dernière intervention 3 décembre 2013 1
7 janv. 2013 à 15:19
merci 1000x zipe!

Je suis entrain de tester cela.
0
chrisgdl3 Messages postés 23 Date d'inscription lundi 18 juin 2012 Statut Membre Dernière intervention 3 décembre 2013 1
Modifié par chrisgdl3 le 7/01/2013 à 15:27
ça marche :)
0

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

Posez votre question
chrisgdl3 Messages postés 23 Date d'inscription lundi 18 juin 2012 Statut Membre Dernière intervention 3 décembre 2013 1
8 janv. 2013 à 10:12
Bonjour Zipe,
pourrais tu m'expliquer les paramètres que tu as mis -lt -a -ge s'il te plait.

Car je souhaiterais faire la même chose que précédemment mais en exclusion.
(exclusion de la plage horaire)

Merci.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
8 janv. 2013 à 10:20
Re-

man bash (Conditions)

-eq = equal (égal à)
-ne = no equal (différent de)
-lt = lether than (plus petit que)
-gt = greater than (plus grand que)
-le = plus petit ou égal
-ge = plus grand ou égal

Pour la négation dans un test ( ! ) voir la commande test dans le man.
0