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

Résolu
chrisgdl3 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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
  2. chrisgdl3 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   1
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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
  3. chrisgdl3 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   1
     
    merci 1000x zipe!

    Je suis entrain de tester cela.
    0
  4. chrisgdl3 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   1
     
    ça marche :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. chrisgdl3 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   1
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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