Projet réveil shell scripting

Fermé
ttresori Messages postés 4 Date d'inscription mercredi 16 janvier 2019 Statut Membre Dernière intervention 16 janvier 2019 - 16 janv. 2019 à 07:44
ttresori Messages postés 4 Date d'inscription mercredi 16 janvier 2019 Statut Membre Dernière intervention 16 janvier 2019 - 16 janv. 2019 à 15:42
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 Date d'inscription mercredi 16 janvier 2019 Statut Membre Dernière intervention 16 janvier 2019
Modifié le 16 janv. 2019 à 09:29
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
16 janv. 2019 à 09:36
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 Date d'inscription mercredi 16 janvier 2019 Statut Membre Dernière intervention 16 janvier 2019
16 janv. 2019 à 15:31
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 211 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 8 octobre 2022 13
Modifié le 16 janv. 2019 à 10:16
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 Date d'inscription mercredi 16 janvier 2019 Statut Membre Dernière intervention 16 janvier 2019
16 janv. 2019 à 15:42
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