Plage horaire en shell

Bonjour à tous,

Question fort simple, mais difficile à interpréter pour moi.

J’ai fais un simple script en shell, et j’aimerais une boucle de ce style:

Pour le temps de 22h à 6h, faire cela, sinon (temps de 6h01 à 21h59) faire ceci.

Je pense qu’une simple boucle for fera l’affaire, mais j’ai beaucoup de mal avec.

Merci à vous :slightly_smiling:

C’est pas clair du tout… :mrgreen:

Tu veux faire un script qui tourne en permanence, et qui fait une chose ou l’autre en fonction de l’heure c’est ça ? Mais s’il tourne en permanence, ça veut dire 100% CPU, c’est probablement pas ce que tu veux. Ça serait pas plus simple et plus adapté de configurer un cron ?

Salut :slightly_smiling:

C’est ça.

Càd ? Le pc sera dédié à cela, donc tant que ça reste acceptable.

Non je ne pense pas :stuck_out_tongue:. Je vais me servir énormément des plages horaires dans mon script, je pense qu’une boucle sera plus adaptée.

Et si tu expliquais le but (à moins que ça soit un secret d’état :mrgreen:) plutôt que le moyen ? Parce que là franchement je vois pas vraiment ce qui pourrait justifier de faire tourner le CPU à 100% en permanence.

Sinon,

while true; do HEURE="$(date +%H)" if [ $HEURE -ge 22 ] || [ $HEURE -lt 6 ]; then # de 22h (inclus) à 6h (exclus) else # de 6h (inclus) à 22h (exclus) fi done
Si tu tiens absolument à inclure 6h00 dedans, regarde du côté de date +%M pour obtenir les minutes, et ajuste la condition en fonction.

Edit : Ou tu peux combiner les deux en une seule valeur aussi :

HEURE="date +%H%M" if [ $HEURE -ge 2200 ] || [ $HEURE -le 0600 ]; then ...

Merci :slightly_smiling:

Je t’ai MP pour explication

Tient, vu que tu me le conseil, tu pourrais me donner une commande pour instaurer une règle dans crontab ?

Sur les forums, ils disent que ce n’est pas possible, qu’il faut obligatoirement passé par

crontab -e

C’est véridique ?

Honnêtement j’en sais rien vu que je me suis jamais posé cette question. :mrgreen: Le manuel semble suggérer que c’est comme pour visudo : tu dois pouvoir contourner la commande et écrire directement dans les bons fichiers, mais c’est à tes risques et périls et très fortement déconseillé.

C’est bien ce que j’ai lu aussi, mais je me suis dis que tu pouvais peut être connaître un tips :wink:

Merci de ton aide :slightly_smiling:

Salut,

[quote=“Saachaa”]Tient, vu que tu me le conseil, tu pourrais me donner une commande pour instaurer une règle dans crontab ?

Sur les forums, ils disent que ce n’est pas possible, qu’il faut obligatoirement passé par

crontab -e

C’est véridique ?[/quote]

C’est pas bien, mais je n’utilise jamais crontab -e, j’écris toujours directement dans /etc/cron.d…
Je ne savais pas que c’était mal… :blush:

Salut lol,

Tant que ça marche :slightly_smiling:

Bonsoir,

Je suis étonné qu’un script ait à tourner 24h/24h “en boucle” (à moins qu’il soit un service ? :017 )…
Est-il possible de savoir à quoi il est destiné car selon la réponse, il est possible que des intervenants t’orientent vers des solutions plus appropriées…
Ou autrement dit : Est-ce des évènements qui déclenchent des traitements (ex : état d’un fichier ou d’un matériel), outre ceux des horaires ?

[quote=“Totor”]Je suis étonné qu’un script ait à tourner 24h/24h “en boucle” (à moins qu’il soit un service ? :017 )…
Est-il possible de savoir à quoi il est destiné car selon la réponse, il est possible que des intervenants t’orientent vers des solutions plus appropriées…
Ou autrement dit : Est-ce des évènements qui déclenchent des traitements (ex : état d’un fichier ou d’un matériel), outre ceux des horaires ?[/quote]
Je l’ai déjà orienté (en MP) vers une solution plus rationnelle (effectivement, un modèle événementiel). :wink:
Au vu de ce qu’il veut faire je ne vois pas trop pourquoi il préfère éviter de l’expliquer “en public” mais ce n’est pas à moi de juger ça…

[quote]Je l’ai déjà orienté (en MP) vers une solution plus rationnelle (effectivement, un modèle événementiel). :wink:
Au vu de ce qu’il veut faire je ne vois pas trop pourquoi il préfère éviter de l’expliquer “en public” mais ce n’est pas à moi de juger ça…[/quote]

Je t’expliquerai en MP :slightly_smiling: