CRONTAB execute la moitié d'un script shell

julien62190 Messages postés 28 Statut Membre -  
 rivalgro -
Bonjour,

j'avais posté un message afin d'etre éclairer sur un script trés simpliste qui serait exécuter avec crontab sous linux. Mais ce n'est pas grave le script que j'ai fonctionne mais je m'explique :



#!/bin/sh


killall -9 /usr/lib/mozilla-firefox-1.0.6/mozilla-firefox-bin
mozilla-firefox www.google.fr

Voila mon problème je dois lancer une tâche planifiée sous linux qui ferme la page actuelle de mozilla et en ouvre une nouvelle ( ici j'ai pris l'exemple de google.fr mais ça n'a pas d'importance c'est pour expliquer ) et cela tous les jours a 5h du matin .

je me log donc en root et je tape crontab -e , voila ce que j'y met :

*/1 * * * * /home/user1/Desktop/script.sh


ps : ici j'ai fait en sorte d'éxécuter le script toutes les minutes pour voir si cela fonctionne .

Enfait le script ferme bien la page mozilla mais il n'ouvre pas google.fr juste aprés avoir fermé la précédente .

or si je clique sur mon script.sh il ferme la page mozillia et ouvre la nouvelle .

Donc where is the problem sir ? ^^



Merci d'avance
A voir également:

47 réponses

dubcek Messages postés 19021 Statut Contributeur 5 637
 
C'est cron qui envoie tout ce qui sort de la commande . C'est dans le manuel, c'est une fonctionalité de cron. Trouver les messages d'erreur aide beaucoup !! :-)

In addition to LOGNAME, HOME, and SHELL, cron(8) will look at MAILTO if it has any reason to send mail as a result of running commands in ``this'' crontab. If MAILTO is defined (and non-empty), mail is sent to the user so named. If MAILTO is defined but empty (MAILTO=""), no mail will be sent. Otherwise mail is sent to the owner of the crontab
0
julien62190 Messages postés 28 Statut Membre
 
biensur mais je n'ai définit nul par mon adresse email ... lol et dsl je suis débutant linux et crontab =)
0
julien62190 Messages postés 28 Statut Membre
 
je ferais une redirection avec le */1 * * * * /home/user1/Desktop/script.sh >/tmp/log 2>&1

et je poste cela ce midi
0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
Le mail est peut être resté dans /var/spool/mail/<nom de login>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
julien62190 Messages postés 28 Statut Membre
 
re bonjour, je craque , sa fait une semaine que je cherche pour une broutille voila le script :


#!/bin/sh . .profile
killall -9 /usr/lib/mozilla-firefox-1.0.2/mozilla-firefox-bin
/usr/bin/mozilla-firefox --display :0.0 www.google.fr


et voici ce que j'ai quand je tape crontab -e :

*/1 * * * * /home/agatelocal/Desktop/script.sh


cela fonctionne toujours pas , et mon stage se finit dans une semaine c'est la derniere chose qu'il me reste a faire =(

Merci d'avance pour votre aide
0
MrClay Messages postés 74 Statut Membre 44
 
Salut,

*Une première chose qu'il serai bien de savoir, ce serait de vérifier si :
1. C'est ta 2e ligne qu'il ne supporte pas (problème lors du lancement de cette commande)
ou si
2. C'est "juste" la 2e ligne qu'il ignore (il n'execute de toutes façons que la première ligne)


Donc, ce que tu peux faire, c'est de
- lancer un programme (thunderbird par exemple)
- rajouter un killall de ce programme dans ton script

#!/bin/sh

killall -9 /usr/lib/mozilla-firefox-1.0.2/mozilla-firefox-bin
killall -9 thunderbird
Si thunderbird, se ferme bien, alors ça veut déjà dire que la 2e ligne est bien lancée.


*Sinon, essaie aussi une chose : dans ton crontab, essaie ça :

*/1 * * * agatelocal /home/agatelocal/Desktop/script.sh 1>/tmp/log1 2>&1
ça permet de lancer la commande sous ton login
0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
Comme ça:

#!/bin/sh

. .profile
killall -9 /usr/lib/mozilla-firefox-1.0.2/mozilla-firefox-bin
/usr/bin/mozilla-firefox --display :0.0 www.google.fr

crontab -l :

*/1 * * * * /home/agatelocal/Desktop/script.sh 1>/tmp/log1 2>&1
0
thorn
 
salut, meme pas la peine de charger tout le profile : ça change legerement celon
les distributions !
tu peux mettre au debut
DISPLAY=:0.0
comme on avais dit au debut avec les variables d'environnement
0
thorn
 
salut, meme pas la peine de charger tout le profile : ça change legerement celon
les distributions !
tu peux mettre au debut
DISPLAY=:0.0
comme on avait dit au debut avec les variables d'environnement
0
julien62190 Messages postés 28 Statut Membre
 
merci pour vos réponses, j'ai tester ce que tu m'a dit MrCLAY
à savoir mon script.sh :

#!/bin/sh

killall -9 /usr/lib/mozilla-firefox-1.0.2/mozilla-firefox-bin
killall -9 kwrite
mozilla-firefox google.fr

J'ai rendu ce script éxecutable donc si je clique dessus ( comme windows ) il ferme mozilla et kwrite et réouvre mozilla sur google mais le crontab ne fonctionne pas ...

je veux juste tester toutes les minutes executer le script aprés je changerais le temps si cela fonctionne .
Je fais ces tests sur une autres machines nommée user1 ( plus agatelocal)

donc dans le crontab -e j'ai ceci :

*/1 * * * * user1 /home/user1/Desktop/script.sh 1>/tmp/log1 2>&1

Les modifications sont prises en compte car :

[root@sandrine-28t8co etc]# crontab -e
crontab: installing new crontab
[root@sandrine-28t8co etc]#

Je vais voir ce qui se trouve dans le log1 et voici ce qu'il me dit :

/bin/sh: user1: command not found

J'ai tester en enlevant le user1 :
*/1 * * * * /home/user1/Desktop/script.sh 1>/tmp/log1 2>&1

Alors mozilla est fermé, kwrite est fermé mais mozilla ne s'ouvre pas ...

Que dois je faire ?

Merci d'avance.
0
MrClay Messages postés 74 Statut Membre 44
 
Tu disais...
"
*/1 * * * * user1 /home/user1/Desktop/script.sh 1>/tmp/log1 2>&1
Les modifications sont prises en compte car :

[root@sandrine-28t8co etc]# crontab -e
crontab: installing new crontab
[root@sandrine-28t8co etc]#

Je vais voir ce qui se trouve dans le log1 et voici ce qu'il me dit :

/bin/sh: user1: command not found

J'ai tester en enlevant le user1 :
*/1 * * * * /home/user1/Desktop/script.sh 1>/tmp/log1 2>&1 
"

Rectification pour le code que je t'ai donné : il n'y avait (en tout que 4 "étoiles") :
*/1 * * * agatelocal /home/agatelocal/Desktop/script.sh 1>/tmp/log1 2>&1

(tu en as mis 5)

En fait, je remplace une des "*" par "agatelocal", ce qui signifie que c'est cet utilisateur là qui lance l'action.


Sinon, à la place de ". .profile", essaie de mettre "export DISPLAY=':0.0'" ?
ça donnerait :
#!/bin/sh

export DISPLAY=':0.0'
killall -9 /usr/lib/mozilla-firefox-1.0.2/mozilla-firefox-bin
killall -9 thunderbird
0
julien62190 Messages postés 28 Statut Membre
 
nouvelle érreur si j'ai ouvert mozzila et kwrite le script les ferme comme prévu et dans le log c'est marqué sa :

(mozilla-firefox-bin:26368): Gtk-WARNING **: cannot open display:

Comme je n'y comprend rien je m'en remet a vous =)

Merci


PS : j'ai tenter de lancer konqueror a la place de mozilla et cela ne fonctionne pas non plus...
De même que :

#!/bin/sh


mozilla-firefox www.google.fr

ne fonctionne pas ... je commence a croire que je suis maudit c'est pourtant simple mais je n'y arrive pas...
0
MrClay Messages postés 74 Statut Membre 44
 
Salut,

Bon, si on a un message d'erreur de firefox, c'est déjà un premier grand pas ;)


Donc, essaie ça, maintenant... c'est une petite "compil" de tout ce qui a été dit avant...

dans /etc/crontab :
*/2 *   * * *   user1    /home/user1/Desktop/script.sh >/tmp/log 2>&1


dans /home/user1/Desktop/script.sh :
#!/bin/bash
killall -9 flock-bin
/usr/lib/mozilla-firefox-1.0.2/mozilla-firefox-bin --display=:0.0 'www.google.fr'&

Et ensuite, regarde d'éventuels messages d'erreur dans :
- /tmp/log
- /var/log/syslog


Hope it helps ;)
0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
et en exécutant:
xhost +`hostname`
pour autoriser l'accès au display X ?
Tout est fait comme root ?
Si oui, y a t-il un fichier /.Xauthority ?
0
julien62190 Messages postés 28 Statut Membre
 
bonjour, dsl je suis débutant mais tu veux dire quoi par :

et en exécutant:
xhost +`hostname`
??si c'est de le taper dans le terminal , voici ce que j'obtient :


root@localhost julen]# xhost +`hostname`
localhost being added to access control list
0
thorn
 
salut , pour la reponse :
root@localhost julen]# xhost +`hostname`
localhost being added to access control list

c'est bon, mais je ne vois pas l'interet, ni pour ton probleme,
quand on lance xhost +adresse ip
par ex, xhost +192.168.1.2
tu autorises une personne (qui a une ip de 192.168.1.2) à lancer une application X (graphique) sur ton
bureau ,cad sur ton DISPLAY

pour le crontab, as tu essayé:

DISPLAY=:0.0
*/2 * * * * /usr/bin/firefox-bin google.fr
0
julien62190 Messages postés 28 Statut Membre
 
Bonjour,

si je prend ce que tu ma dit le /tmp/log renvoie ça :

flock-bin: no process killed
/usr/lib/mozilla-firefox-1.0.2/mozilla-firefox-bin: error while loading shared libraries: libmozjs.so: cannot open shared object file: No such file or directory
0
julien62190 Messages postés 28 Statut Membre
 
je viens d'essayer avec un script en perl :

#!/usr/bin/perl

system("killall -9 mozilla-bin");
sleep(1);
system("/usr/bin/mozilla-firefox www.google.fr");

Pour le cron j'ai juste changer le script.sh en script.pl

cela ne fonctionne toujours pas ...

Y aurait il un autre language qui le fasse aussi simplement ?
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

ce n'est pas un problème de langage

d'ailleurs je ne comprends pas pourquoi tu as des problèmes
dans mon message crontab execute la moitie d un script shell#7
je t'ai dit que ça marche chez moi, et je ne crois qu'il y a des raisons que chez toi ne marche pas
0
julien62190 Messages postés 28 Statut Membre
 
alors je fais quoi ,??? j'ai tenter sur une mandriva 2005 au boulot et sur une mandriva 2006 chez moi ....


d'ailleur si je tape /usr/bin/firefox dans un terminal cela ne me l'ouvre pas...

est ce que ce serait possible que la version que j'ai de mozila soit trop vieille pour supporté ce que je lui demande ?
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Déjà il serait bien il me semble de savoir où se trouve "firefox" sur ton système, non ?
Que te renvoie la commande :
whereis firefox
?;-))
0
julien62190 Messages postés 28 Statut Membre
 
si je fais whereis mozilla-firefox je trouve si je fais whereis firefox

[root@localhost user1]# whereis firefox
firefox:


Voila =)
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
si je fais whereis mozilla-firefox je trouve
Et ça donne quoi ?

Parce que normalement l'exécutable pour lancer "firefox", c'est "firefox" et non pas "mozilla-firefox" (à moins d'une version très ancienne ou d'un lien symbolique...)
0
julien62190 Messages postés 28 Statut Membre
 
sa donne :

[root@localhost user1]# whereis mozilla-firefox
mozilla-firefox: /usr/bin/mozilla-firefox /usr/share/man/man1/mozilla-firefox.1.bz2
[root@localhost user1]#

Mais pour revenir aux choses tu penses que c'est mozilla le probleme ? car je n'ai pas fais de lien symbolique , j'ai installer l'os ya pas longtemps et pour chez moi je l'ai installer pour l'occasion.
0