Projet réveil shell scripting

ttresori Messages postés 4 Statut Membre -  
ttresori Messages postés 4 Statut Membre -
Bonjour,

Pour un projet libre je dois crée un petit script au choix.

J'ai décidé de faire une sorte d'horloge mais je crois ne pas bien réussir a utiliser cron pour panifier depuis un script.

Voici mon script : Je dispose d'une heure valide et des minutes valides

#!/bin/bash

echo "Copie le lien d'une page [web] ou [path_file]" Exemple https://www.google.com/
read link
echo "xdg-open "$link"">link_to_start (Fichier où écrire la commande a éxécuter)
echo "\n"$minutes" "$heure" * * * $USER /home/$USER/Documents/reveil/link_to_start">>/etc/crontab [[[***1]]]
crontab /etc/crontab
/etc/init.d/cron reload
/etc/init.d/cron restart

        • 1 Le problème pourrais venir du format de l'entrée ?


En regardant le fichier syslog, la tache c'est bien exécuter a l'heure demander mais xdg-open na pas l'air de s’exécuter et d'ouvrir la page.

Je bloque la dessus et ne trouve pas de solution,si quelqu’un voyais d'où viendrais les erreurs..

Cordialement, Merci

2 réponses

  1. ttresori Messages postés 4 Statut Membre
     
    Et en entier :
    #!/bin/bash
    heure=0 ; minutes=0 ; maxheure=23 ; maxminutes=59 ; valid=1
    while [ $valid -ne 2 ]
    do
        echo "Choisis une heure de sonnerie :"
        read heure
        echo "Choisis les minutes :"
        read minutes
        if [ $heure -gt $maxheure ]
        then
            echo "Pas possible, il n'ya que 24 heure dans une journee"
        else
            valid=2
        fi
        if [ $minutes -gt $maxminutes ]
        then
            echo "Pas possible, il n'ya que $maxminutes dans une heure"
            valid=1
        fi
        if [ $heure -lt "0" ]
        then
            echo "Pas possible, il n'ya pas heure negative dans une journee"
            valid=1
        fi
        if [ $minutes -lt "0" ]
        then
            echo "Pas possible, il n'ya pas de minutes negative dans une heure"
            valid=1
        fi
        if [ $heure -gt $maxheure ]
        then
            echo "Pas possible, il n'ya que 24 heure dans une journee"
        else
            valid=2
        fi
    done
    if [ $heure -lt "10" ]
    then
        echo -n "0"$heure"h"
    else
        echo -n ""$heure"h"
    fi
    if [ $minutes -lt "10" ]
    then
        echo -n "0"$minutes""
    else
        echo -n ""$minutes""
    fi
    read -p " te convient (y/n)?" yn
    case $yn in
        [Yy]* ) echo "OK";;
        [Nn]* ) echo "Restart the script so"; exit;;
    esac
    echo "Copie le lien d'une page [web] ou [path_file]"
    read link
    echo "xdg-open "$link"">link_to_start
    echo "\n"$minutes" "$heure"   * * * $USER /home/$USER/Documents/reveil/link_to_start">>/etc/crontab
    crontab /etc/crontab
    /etc/init.d/cron reload
    /etc/init.d/cron restart
    


    EDIT : Ajout des balises de code
    0
    1. ttresori Messages postés 4 Statut Membre
       
      Bonjour, désolé pour les balises je n'ai pas trouver celle adapter au bash

      Merci mais le soucis est que je ne connais pas la version du navigateur (enfin si mais je vais faire comme si)

      Je vais essayer avec l'ajout du DISPLAY. Je vous tient au courant merci
      0
  2. lEprofSonDkon Messages postés 227 Statut Membre 13
     
    salut,

    d'abord, une horloge n'est pas un réveil : le réveil contient une horloge, l'inverse n'est pas vrai. ;)

    ensuite, ce n'est pas ainsi qu'on implémente une tâche
    cron
    .
    d'ailleurs, on ne sait pas si tu veux créer une tâche pour un utilisateur (ce qui est le plus probable), ou pour tout le système...
    Or, là, tu inscris la tâche dans la crontab système.
    tu dois chercher comment, dans un script, inscrire une tâche dans la crontab utilisateur ! (ça se trouve facilement)
    MAIS
    enfin, il est toujours malhabile de faire une tâche cron pour lancer un programme en mode graphique pour un utilisateur
    qui n'est pas toujours connecté, et
    qui n'est pas toujours connecté en mode graphique.

    il est préférable de lancer le script au démarrage de la session utilisateur, et de leconstruire de manière qu'il s'exécute en permanence.
    0
    1. ttresori Messages postés 4 Statut Membre
       
      Salut,

      Merci pour la précision j 'était bien fatigué quand j'ai demandé de l'aide 8)

      Oui c'est pour l'user actuel et oui bien vus si on es connecter en ssh a la machine l'explorateur risque d'avoir du mal a s'ouvrir, bien vus !!

      To do:

      User connecter ? -> ssh ou reel.

      -------------

      Genre executer le script en background au démarage-> dans le script un check de l'heure qui réagis a une éxécution de commande ?

      Du coup je ne passerais plus par cron.

      A voir si c'est réalisable, je vais voir tout sa et je reviens vers vous

      Merci!
      0