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
A voir également:

2 réponses

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
jordane45 Messages postés 40050 Statut Modérateur 4 757
 
Bonjour,

A tout hasard..
https://askubuntu.com/questions/780337/how-to-open-an-url-in-firefox-via-cron-cron-jobs-scheduling

Chrome:

30 14 * * * export DISPLAY=:0 && google-chrome --new-window http://ww17.randomurl.com/

Firefox:

30 14 * * * export DISPLAY=:0 && firefox --new-window http://ww17.randomurl.com/
0
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
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
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