CRONTAB execute la moitié d'un script shell
rivalgro -
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
Configuration: Linux Mandriva Firefox 1.0.7
- CRONTAB execute la moitié d'un script shell
- Classic shell - Télécharger - Personnalisation
- Moitié a4 - Guide
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
- Shell addition ✓ - Forum Shell
47 réponses
- 1
- 2
- 3
Un script lancé par cron sous Linux est censé fermer Firefox puis ouvrir google.fr, mais l’ouverture ne se produit pas automatiquement lorsque le script est déclenché par crontab.
Plusieurs réponses expliquent que cron fonctionne avec un environnement minimal et qu’aucune variable DISPLAY n’est définie, ce qui empêche le lancement graphique et nécessite d’ajouter DISPLAY ou -display.
D’autres conseils recommandent d’expliciter le chemin et les variables, par exemple DISPLAY=:0.0 au début du script et éventuellement d’exporter le PATH ou de charger des éléments du profil.
Une approche pratique consiste à lancer Firefox avec le display approprié et à consigner les sorties du cron dans un fichier log, afin de diagnostiquer d’éventuels messages d’erreur.
Dans le shell, faire echo $DISPLAY et mettre cette valeur dans le script:
mozilla-firefox -display XXX www.google.fr
mais cela ne fonctionne toujours pas ...
j'ai fais :
[root@localhost user1]# echo $DISPLAY
:0.0
donc j'ai :
#!/bin/sh
killall -9 /usr/lib/mozilla-firefox-1.0.6/mozilla-firefox-bin
mozilla-firefox -display 0.0 www.google.fr
Et cela ne fonctionne pas, dsl je débute sous linux .
Que puis je faire ?
mozilla-firefox -display :0.0 www.google.fr
sinon, récupérer les erreurs:
mozilla-firefox -display :0.0 www.google.fr 1>/tmp/log 2>&1
et voir dans /tmp/log
"log2" 0L, 0C
E576: viminfo: '>' manquant à la ligne 0^@
E576: viminfo: '>' manquant à la ligne ^I+^I1^I5^@
E576: viminfo: '>' manquant à la ligne ^I+^I2^I32^@
E576: viminfo: '>' manquant à la ligne ^I+^I3^I32^@
E576: viminfo: '>' manquant à la ligne ^I+^I4^I24^@
E576: viminfo: '>' manquant à la ligne ^I+^I2^I8^@
E576: viminfo: '>' manquant à la ligne ^I+^I3^I8^@
E576: viminfo: '>' manquant à la ligne ^I+^I1^I3^@
Appuyez sur ENTRÉE ou tapez une commande pour continuer
je précise aussi que l'orsque je veux éditer crontab ( crontab -e ) j'ai le même message idem quand j'enregistre les modifications mais les modfications sont prises .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionattention aux espaces:
mozilla-firefox -display :0.0 www.google.fr"espace" 1>/tmp/log"espace" 2>&1
et qu'affiche cat /tmp/log
merci quand meme de te pencher sur mon cas je suis sur qu'en à beaucoup et surtout des plus complexes que celui ci.
moi qui pensais qu'on me traittrais lol parce que c'est du basique de chez basique ... bin le basique il me chauffe la =)
chez moi ça marche
#!/bin/bash killall -9 firefox-bin /usr/bin/firefox --display=:0.0 'www.google.fr'&
les : sont importants
mozilla-firefox -display :0.0 www.google.fr
dubcek a oublié un tiret
--display au lieu de -display
#!/bin/sh
set -x
set
killall -9 /usr/lib/mozilla-firefox-1.0.6/mozilla-firefox-bin
mozilla-firefox -display :0.0 www.google.fr
modifer le crontab
*/1 * * * * /home/user1/Desktop/script.sh >/tmp/log 2>&1
mozilla-firefox -display :0.0 www.google.fr **
ou
/usr/bin/firefox --display=:0.0 'www.google.fr'&
car la , ya un =
J'ai formaté la machine linux car le problème de vim la affiche de temps en temps qu'il enregistre pas les modif dans le crontab.
Donc je vais reprendre a zéro.
Merci encore.
Les 2 notations display sont valides, la mienne étant la notation X d'origine.
un job cron n'a pas l'environnement qu'un utilisateur a après un login. Essayer de mettre dans le script : . .profile
si le login shell est sh, ksh ou bash
à la base c'était un script.sh, que veut tu dire par :
" un job cron n'a pas l'environnement qu'un utilisateur a après un login. Essayer de mettre dans le script : . .profile
si le login shell est sh, ksh ou bash "
?
Merci d'avance.
Le cron n'exécute pas ces fichiers et donc le script tourne avec le minimum et il peut manquer des définitions. On peut le voir avec la commande set dans le script.
Merci encore
je n'ai pas pu tester cela mais ce midi c'est certains je test et je te dis quoi, par contre pour ce que tu m'a dit :
un job cron n'a pas l'environnement qu'un utilisateur a après un login. Essayer de mettre dans le script : . .profile
le .profile je le place ou dans le script ?
merci d'avance.
- 1
- 2
- 3