Script bash exécution dans une plage horaire définie [Résolu/Fermé]

Signaler
Messages postés
23
Date d'inscription
lundi 18 juin 2012
Statut
Membre
Dernière intervention
3 décembre 2013
-
Messages postés
35620
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
22 septembre 2020
-
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

Messages postés
35620
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
22 septembre 2020
5 460
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...
Messages postés
23
Date d'inscription
lundi 18 juin 2012
Statut
Membre
Dernière intervention
3 décembre 2013

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.
Messages postés
35620
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
22 septembre 2020
5 460
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

$
Messages postés
23
Date d'inscription
lundi 18 juin 2012
Statut
Membre
Dernière intervention
3 décembre 2013

merci 1000x zipe!

Je suis entrain de tester cela.
Messages postés
23
Date d'inscription
lundi 18 juin 2012
Statut
Membre
Dernière intervention
3 décembre 2013

ça marche :)
Messages postés
23
Date d'inscription
lundi 18 juin 2012
Statut
Membre
Dernière intervention
3 décembre 2013

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.
Messages postés
35620
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
22 septembre 2020
5 460
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.