[BASH/CRON] Différences: droits des fichiers

Fermé
fabriceOb Messages postés 23 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 12 février 2008 - 21 août 2007 à 11:00
fabriceOb Messages postés 23 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 12 février 2008 - 22 août 2007 à 10:36
Bonjour

J'ai un script plutot long pour faire des tests.
Déroulement du script:

1- Initialisations diverses ($fold: dossier de travail depuis le home: /home/fabrice/test )

2- Création de $menu (fichier html)

3- lancement de selenium par la ligne:
/usr/bin/java -jar "$fold/selenium-server.jar" -htmlSuite "*firefox" $2 "$menu" "$file"

4- Traitement de $file (qui est le fichier résultat de selenium)



Quand je lance le script à la main, ca fonctionne.

Quand je le lance via mon crontab -e:
00 * * * * /home/fabrice/test/./unix params3
Ca ne marche pas.

Le souci se situer à la fin de l'étape 3: le fichier $file est bien crée, mais pèse 0 Ko. Comme s'il était protégé en écriture.
(ce que je teste à l'étape 4...)

Comment un script peut-il crée un fichier sans avoir les droits pour y écrire ?

quelqu'un a des idées ?

Merci !
A voir également:

10 réponses

Jean-François Pillou Messages postés 19261 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 274
21 août 2007 à 11:02
Je pense qu'il a les droits pour écrire le fichier (puisque le fichier existe) mais il n'a peut être pas les droits pour exécuter l'application Java...

Peut être qu'avec un sudo/su ...
0
fabriceOb Messages postés 23 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 12 février 2008 3
21 août 2007 à 11:06
Il exécute pourtant bien la ligne java (vu que le fichier est crée...)

Comment on peut faire un sudo dans un script sans qu'il demande le mot de passe ?

[edit] En meme temps, quand je tape le mot de passe, ca ne marche pas.. je pense que ca vient donc de là: le su n'a pas les droits sur l'éxécution... (a priori, il lui manque quelque chose pour firefox bin.... (je hais ubuntu 64..))
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
21 août 2007 à 11:09
0
asevere Messages postés 13095 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426
21 août 2007 à 11:18
Bonjour,

Essaye de rediriger stdout et stderr de ton script cron vers un fichier de logs pour analyse:
00 * * * * /home/fabrice/test/./unix params3 
devient
00 * * * * /home/fabrice/test/./unix params3 >/home/fabrice/test/unix.out 2>&1
Aprés exécution regarde si tu n'as pas des erreurs dans /home/fabrice/test/unix.out
En cron, l'environnement de ton utilisateur n'est pas le même que quand tu es logué, certaines variables peuvent être manquantes, $JAVA_HOME, $CLASSPATH, et tout le reste. c'est peut-être ce qui te pose problème.

Dans ce cas, les solutions sont multiples:
définir des variable pour l'environnement cron (en tête de crontab voir le man)
définir tout ce qu'il faut dans le script lancé (pas maintenable si a terme tu as beaucoup de scripts lancé de cette manière)
faire dans le script ce qui est fait quand tu te logues (source des fichier .bash* /etc/profile.d/* etc.)

@+
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
21 août 2007 à 11:22
Salut Adrien,

Content de te revoir trainer dans le coin ;-))

faire dans le script ce qui est fait quand tu te logues (source des fichier .bash* /etc/profile.d/* etc.)
Y'en a qui écoute et d'autres pas ;-((
post #2
post #4

;-))
0
asevere Messages postés 13095 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
21 août 2007 à 11:25
(-:

> faire dans le script ce qui est fait quand tu te logues (source des fichier .bash* /etc/profile.d/* etc.)
Y'en a qui écoute et d'autres pas ;-((


Bah je pense pas que sudo/su soit nécéssaire pour lancer Sélénium, je me base sur l'hypothèse qu'il n'a pas modifier sont script ainsi :)
0

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

Posez votre question
fabriceOb Messages postés 23 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 12 février 2008 3
21 août 2007 à 11:28
jipicy> pendant une seconde, j'ai cru que tu te moquais de moi, mais finalement, j'ai appris des trucs sur cette page.

finalement, le cron ouvre des sessions pour moi, et ca ne lui suffit pas.

Exemple dans le log:
Aug 20 11:22:01 fabrice-desktop CRON[9328]: (pam_unix) session opened for user fabrice by (uid=0)
Aug 20 11:22:01 fabrice-desktop CRON[9328]: (pam_unix) session closed for user fabrice


Donc, j'ai bien "géré" et c'est bien mon cron qui lance mon fichier... Pourquoi n'a t-il pas les droits ? Mystère.

(Quoique je doive explorer la piste du firefox/bin (qui n'existe pas sur ma version 64...). Quelqu'un m'avait bidouillé une solution, mais ca peut venir de là vu les messages d'erreurs en rajoutant le sudo...)
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
21 août 2007 à 11:31
mais finalement, j'ai appris des trucs sur cette page.
Ben comme c'était toi l'initiateur de cette page, y'a un moment que t'aurais dû le voir, non ?

;-))
0
fabriceOb Messages postés 23 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 12 février 2008 3
21 août 2007 à 11:56
jipicy > ca m'apprendra à taper plus vite: je te parlais de la page sur le sudo ^^

Pour les conseils donnés dans l'autre fil: j'ai effectivement cru que ca marchait, mais finalement, non. Mon test a tourné "à vide" pendant 2 semaines (alors que j'étais persuadé qu'il marchait...)
[et vu que je l'avais mis résolu, je me voyais mal le réouvrir]

Pour le out, voilà le résultat:
java.lang.RuntimeException: Firefox couldn't be found in the path!
Please add the directory containing 'firefox-bin' to your PATH environment
variable, or explicitly specify a path to Firefox like this:
*firefox /blah/blah/firefox-bin

=> donc, c'est bien firefox/bin qui me fait encore suer.
Faut juste que je trouve comment avoir un firefox/bin qui fonctionne pour mon cron alors que firefox/bin sur Ubuntu64, c'est pas génial.

J'avance, meme si c'est pas dans le sens que je croyais...
0
asevere Messages postés 13095 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426
21 août 2007 à 12:01
Pour le out, voilà le résultat:
java.lang.RuntimeException: Firefox couldn't be found in the path!
Please add the directory containing 'firefox-bin' to your PATH environment
variable, or explicitly specify a path to Firefox like this:
*firefox /blah/blah/firefox-bin


Voualà ce que je voulais dire plus haut :)

La variable PATH n'existe pas via cron, il faut donner le chemin complet vers firefox dans ton script, et ça devrait fonctionner :)

@+
0
fabriceOb Messages postés 23 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 12 février 2008 3
21 août 2007 à 12:09
Seulement, quand je note:
/usr/bin/java -jar "$fold/selenium-server.jar" -htmlSuite "*custom /usr/bin/firefox" $2 "$menu" "$file

=> selenium lance bien firefox (hourra)
=> il n'ouvre pas une nouvelle session de FF (contrairement à d'habitude)
=> il ne lance pas les tests.

bon, ca vient donc de la facon de lancer firefox par selenium, faut que je regarde ca ;)


Merci à vous.
0
asevere Messages postés 13095 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426
21 août 2007 à 12:26
Essaye avec /usr/lib/firefox-<version>/firefox-bin

Ou quelque chose du genre, le chemin exacte chez toi tu pourra le trouver avec la commande suivante:
find /usr -name firefox-bin
--
Une belette, un lapin !?
C'est pas normal!
0
fabriceOb Messages postés 23 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 12 février 2008 3 > asevere Messages postés 13095 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024
21 août 2007 à 13:14
$ /usr/lib/firefox/firefox-bin
/usr/lib/firefox/firefox-bin: error while loading shared libraries: libmozjs.so: cannot open shared object file: No such file or directory


dommage.
il me reste je pense 3 solutions:
-> ne pas utiliser firefox (vu que firefox-bin n'existe pas en 64 sous Ubuntu).
-> contourner le probleme pour avoir un firefox-bin compatible
-> changer d'OS.
0
asevere Messages postés 13095 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426 > asevere Messages postés 13095 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024
21 août 2007 à 14:29
En fait, le firefox-bin c'était une idée comme ça, mais effectivement, ça ne fonctionnera pas.

Autre chose,

Quand tu lance le script à la main, j'imagine que c'est à partir d'une console ouverte dans une interface graphique (gnome/kde), de mémoire, pour sélénium, comme il utilise Firefox, il est nécéssaire d'avoir une interface graphique lancée et accessible, ce que n'a pas cron.

Le plus simple pour tester:
sur la machine, lancer l'interface graphique, ouvrir une console dans cette interface et taper la commande suiavnte:
xhost +
Ensuite, dans ton script, il faudrait commencer par exporter la variable DISPLAY:
export DISPLAY=:0
Et attendre que le cron se déclanche, voir si ça fonctionne.

Cordialement

0
fabriceOb Messages postés 23 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 12 février 2008 3
21 août 2007 à 18:28
$ xhost +
access control disabled, clients can connect from any host

le cron se lance : arf.. dommage ;)
mais meme si le cron bloque toujours... mais je suis presque sur que c'est firefox-bin qui bloque.... je chercherais demain.
0
asevere Messages postés 13095 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426
21 août 2007 à 21:32
Arf :(

Même avec le export ? :-/

Etrange, et dans le .out, tu n'as pas plus d'info qu'avant en donnant le path complet vers Firefox ?

Bonne soirée
0
fabriceOb Messages postés 23 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 12 février 2008 3
22 août 2007 à 10:36
asevere > si si, le message que j'ai donné est un extrait. Mais suffisant pour voir qu'il me manque firefox-bin... (plus le temps passe, moins j'aime le AMD-64..
0

Discussions similaires