| Qui est en ligne ? |
| Il y a : 20 utilisateurs en ligne, consultez le détail |
Forum » Serveur, Réseaux et Programmation » gestion de l'heure avec bash |
Forum modéré par : jblecanard |
| Même auteur |
|
Score ( voter ) : |
|
| Page : [1] 2 |
| Auteur | Message |
|---|---|
|
|
#0 Message posté le : 18-11-2006 à 10:40:51 |
Petit scarabée Forum : Inscrit Association : Arrivé(e) le : 06-03-2006 Nombre de messages : 17 |
Bonjour, j'aimerai savoir s'il est possible,dans un script bash,qu'une commande soit lancer à l'heure indiquée par l'utilisateur du script. J'ai vaguement pensé à faire lire le résultat de la commande date +%M%H dans le script.... Les idées sont bienvenues. Merci. Flash6b |
|
|
#1 Message posté le : 18-11-2006 à 10:49:43 |
Naboo Forum : Inscrit Association : Arrivé(e) le : 24-02-2004 Nombre de messages : 2217 |
Bin c'est possible mais il faut que toàn script soit un "daemon", il faut qu'il tourne en attendant que l'heure soit bonne. Donc tu doit surement faire un while avec : ta condition d'heure et un temps d'attente pour ne pas que ton programme bouffe 100% du proc. Sinon pourquoi tu n'utilise pas cron ? |
|
|
#2 Message posté le : 18-11-2006 à 13:13:31 |
Hobbit Forum : Inscrit Association : Arrivé(e) le : 08-06-2004 Nombre de messages : 1239 |
Oui utilise cron si tu veux que ta commande sois utilisé plusieurs fois (genre toute les heures). Si tu veux que ça sois une seule fois, utilise at :
|
|
|
#3 Message posté le : 18-11-2006 à 13:58:07 |
Petit scarabée Forum : Inscrit Association : Arrivé(e) le : 06-03-2006 Nombre de messages : 17 |
J'avais bien pensé à at ou cron mais le commande à lancer concerne vlc qui se lance en mode graphique. D'aprés ce que j'ai essayé,at ne fonctionne pas dans ce cas là. Si at fonctionne avec un processus qui ouvre une fenètre ou si je peux lancer un enregistrement sans que vlc ne s'ouvre,le script lui-même devient facultatif. Si je fais une boucle qui compare le résultat de la commande date avec l'heure demandée par l'utilisateur entre des sleep il me faut une marge.Il ne pourra jamais tomber pile,ou il faut que j'augmente les comparaisons d'heures quand on se raproche de l'heure demandée. Ca doit être faisable,je pense. Ciao. |
|
|
#4 Message posté le : 18-11-2006 à 14:20:09 |
Naboo Forum : Inscrit Association : Arrivé(e) le : 24-02-2004 Nombre de messages : 2217 |
Si tu fais un sleep de 20/30 seconde, ça suffit pour décharger le processeur et si ton heure n'est précise qu'à la minute ta comparaison sera exacte. Sinon j'ai rien compris avec ton VL machin graphique |
|
|
#5 Message posté le : 18-11-2006 à 20:23:16 |
Petit scarabée Forum : Inscrit Association : Arrivé(e) le : 06-03-2006 Nombre de messages : 17 |
Re, merci pour les réponses.En fait,quand on lance la commande vlc -vvv 'le flux' --sout 'fichier_et_format',ça marche, mais ça lance l'interface graphique de vlc et "at" ne semble pas le permettre. Je pensai faire un sleep qui dépend de la différence entre l'heure demandée et l'heure retourné par 'date'.Je vais voir cette idée. Ciao. |
|
|
#6 Message posté le : 19-11-2006 à 10:06:00 |
Naboo Forum : Inscrit Association : Arrivé(e) le : 24-02-2004 Nombre de messages : 2217 |
Tu n'as pas une commande pour ne pas ouvrir le graphique ? Il me semble qu'avec vlc on est pas obligé de'utilser le graphique. Quand j'avais essayé sur gentoo. Un truc genre vlc --nogui ? Enfin regarde on sait jamais |
|
|
#7 Message posté le : 19-11-2006 à 16:43:29 |
Naboo Forum : Modérateur Association : Président Arrivé(e) le : 09-04-2006 Nombre de messages : 2085 |
sinon tu peux essayer de spéciafiez le display :
xhost +localhost tu peux même essayer de lancer un terminal qui lance VLC via un script.at ... = DISPLAY=:0 vlc... ------------------------------------- toto |
|
|
#8 Message posté le : 19-11-2006 à 17:52:37 |
Jedi Forum : Modérateur Association : Membre fondateur Arrivé(e) le : 08-01-2005 Nombre de messages : 4030 |
Cron permet aussi de lancer une commande une seule fois à une date ou une heure donnée. Pourquoi utiliser at ? Edit : parce qu'on peut se passer de modifier un fichier de config pour le faire. Ok j'ai compris. Sinon je plussoie l'idée d'Azollyx. --Message édité par jblecanard le 19-11-2006 à 19:27:41-- ------------------------------------- C'est une situation bien inconfortable que d'être assez sensible à la bêtise pour en souffrir et trop intelligent pour s'en indigner. - Gustave Thibon - |
|
|
#9 Message posté le : 19-11-2006 à 18:36:10 |
Petit scarabée Forum : Inscrit Association : Arrivé(e) le : 06-03-2006 Nombre de messages : 17 |
Bonsoir, en effet, la commande: at 'heure' export DISPLAY=:0.0 ; vlc fonctionne nickel.Ca inclut la variable indispensable au graphique dans l'environnement constitué par at. Merci beaucoup,c'est génial.Je n'ai pas trouvé trace d'un argument comme l'équivalent de -nogui pour mplayer. C'est une solution simple et efficace,je peux quand même faire un script pour le fun en incluant 'at'. Merci à tous . Ciao. |
|
|
#10 Message posté le : 19-11-2006 à 21:18:51 |
Jedi Forum : Inscrit Association : Arrivé(e) le : 03-08-2003 Nombre de messages : 4073 |
euh, "mplayer", ce serait pas déja une version console ? avec "gmplayer" comme GUI ------------------------------------- Troisième loi de Greer : Un programme informatique ne fait jamais ce que vous voudriez qu'il fasse, ... il fait seulement ce que vous lui dites de faire. |
|
|
#11 Message posté le : 19-11-2006 à 22:55:40 |
Jedi Forum : Modérateur Association : Membre fondateur Arrivé(e) le : 08-01-2005 Nombre de messages : 4030 |
oui, le nounoursmignon est dans le vrai. Cependant, il lui faut tout de même une session graphique pour afficher une video, ou un framebuffer... --Message édité par jblecanard le 19-11-2006 à 22:56:15-- ------------------------------------- C'est une situation bien inconfortable que d'être assez sensible à la bêtise pour en souffrir et trop intelligent pour s'en indigner. - Gustave Thibon - |
|
|
#12 Message posté le : 19-11-2006 à 22:59:05 |
Petit scarabée Forum : Inscrit Association : Arrivé(e) le : 06-03-2006 Nombre de messages : 17 |
Oui,désolé,c'était juste pour répondre à la suggestion de Moilebigboss pour lancer vlc sans interface. Par contre at -f 'nom_ du_fichier' 'heure' avec export DISPLAY=:0.0 ; vlc étant le contenu du fichier(rendu exécutable) ne marche pas.Je n'ai pas encore trouvé pourquoi. Désolé,je me suis trompé dans la syntaxe. J'ai mis :0:0 au lieu de :0.0 Plus nul!!!! --Message édité par flash6b le 19-11-2006 à 23:56:22-- |
|
|
#13 Message posté le : 20-11-2006 à 09:59:22 |
Hobbit Forum : Inscrit Association : Arrivé(e) le : 08-06-2004 Nombre de messages : 1239 |
Ouais, je sais pas si tu peux lui dire de le faire une fois et une seule, et qu'il efface la ligne correspondante après l'avoir exécuté avec cron ? |
|
|
#14 Message posté le : 20-11-2006 à 11:39:46 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 30-11-2004 Nombre de messages : 278 |
Je me suis fait un script pour faire de mon lecteur multumedia un radio-reveil:#! /bin/sh #Recuperation de l'heure et minutes a laquelle se reveiller echo "Reveil: heures"; read heure_reveil #Heure et minutes a laquelle se reveiller echo "Reveil: minutes"; read minute_reveil #Recuperation de l'heure et minutes apres la fin de la lecture heure_act=$(date +%H) minute_act=$(date +%M) #Calcul du temps de sommeil restant (en minutes) minute_rest=$(expr $minute_reveil - $minute_act) heure_rest=$(expr $heure_reveil - $heure_act) #Si on est encore au jour avant le reveil (script lancé avant minuit), on rajoute 24h au nombre d'heures de sommeil restantes if [ $heure_rest -lt 0 ]; then heure_rest=$(expr $heure_rest + 24) fi #tant que le nombre de minutes restantes est négative, on enleve une heure qu'on rajouter comme 60 minutes while [ $minute_rest -lt 0 ] ; do minute_rest=$(expr $minute_rest + 60) heure_rest=$(expr $heure_rest - 1) done #On a calculer le nombre d'heures et de minutes restantes let temps_rest=" 60 * $heure_rest " temps_rest=$(expr $temps_rest + $minute_rest) #Fin du calcul du temps restant, en minutes #On met le temps en secondes pour sleep let temps_rest=" 60 * $temps_rest" sleep $temps_rest En gros, calcule le temps qu'il y a entre l'heure actuelle et l'heure à laquelle tu veut lancer at commande et fait un sleep de cette durée. ------------------------------------- Open your mind, use Open Source. Le kangourou repeint toujours son tournevis quand les kiwis jouent du piano (François Perusse) |
|
|
#15 Message posté le : 21-11-2006 à 23:41:45 |
Petit scarabée Forum : Inscrit Association : Arrivé(e) le : 06-03-2006 Nombre de messages : 17 |
Bonsoir, merci pour ton script,logan,je n'ai plus besoin de gérer le temps mais j'ai quelque chose qui cloche: case $choix in =2) $choix={chaines[2]} ........ esac ce petit morceau de code ne donne rien.Je voudrai que si le contenu de la variable $choix est 2,la variable $choix prenne le contenu de la variable indexé 2 dans le tableau chaines.J'ai cherché et essayé mais je ne trouve pas la bonne syntaxe. Est ce possible ou il faut s'y prendre autrement? Merci.Ciao. |
| Page : [1] 2 |
Forum » Serveur, Réseaux et Programmation » gestion de l'heure avec bash |
Forum modéré par : jblecanard |
| Même auteur |
|
Score ( voter ) : |
|
- Petit scarabée : 0 pastille, moins de 100 messages
- Scarabée : 0 pastille, plus de 100 messages
- Hobbit : 1 pastille, plus de 1000 messages
- Naboo : 2 pastilles, plus de 2000 messages
- Elfe : 3 pastilles, plus de 3000 messages
- Jedi : 4 pastilles, plus de 4000 messages
- Maître Jedi : 5 pastilles, plus de 5000 messages