Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/08/2007, à 14:46

fabriceO

[RESOLU] [crontab] Automatisation et droits d'accès

Bonjour

[préambule inutile] je me remets à linux après plusieurs années sans y avoir toucher plus que ca (une commande sur un serveur de temps en temps..), et j'avoue, parfois, j'ai du mal.... [/préambule]

J'ai donc un programme en java qui travaille, puis me calcule automatiquement un fichier de résultat. (Selenium, pour les connaisseurs).

Une fois fait, je "lit" le fichier et j'agis en conséquence.

L'idéal, serait de l'exécuter régulièrement. MAIS quand je l'ajoute dans mon crontab, ca ne marche pas.

Test en live:
~/Desktop/_boulot/test/./unix test_200
==> Fonctionne
Dans le crontab:
5 *  * * * ~/Desktop/_boulot/test/./unix test_200
==> Ne fonctionne pas

Le fichier généré lors de l'appel à selenium (donc, par le java) ne se crée pas lorsque je l'appelle dans le cron.

Au final, je ne comprends pas pourquoi la ligne suivante n'est pas fonctionnelle dans un cron:
/usr/bin/java -jar "$fold/selenium-server.jar" -htmlSuite "*firefox" $url "$fold/$menu" "$fold/$file"

(pour ceux qui relisent, je convertit le $1 en $menu... et $fold est mon répertoire ~/Desktop/_boulot/test )

Je finis par me dire qu'un java lancé par un script lancé dans un crontab ne doit pas avoir les droits en écriture. (Mais pourtant, les fichiers sont bien crées... c'est juste que le fichier de résultat produit par sélenium dans ces conditions là est déséspérement vide)

Si quelqu'un voit où je me suis bêtement trompé, je suis preneur de la solution.

Dernière modification par fabriceO (Le 03/08/2007, à 09:36)

Hors ligne

#2 Le 02/08/2007, à 15:55

DiCiCat

Re : [RESOLU] [crontab] Automatisation et droits d'accès

essaye de virer le ~ dans ton cron et de mettre le chemin complet

Hors ligne

#3 Le 02/08/2007, à 16:00

NooP

Re : [RESOLU] [crontab] Automatisation et droits d'accès

Salut,

J'ai l'impression qu'il te manque le nom d'utilisateur dans ton crontab ...

Essaye en remplacant le 'root' par l'utilisateur sous lequel tu veux lancer ton script.
De plus, oui, mets le chemin complet (Supprime le ~).

5 *  * * * root ~/Desktop/_boulot/test/./unix test_200

Dernière modification par NooP (Le 02/08/2007, à 16:00)


Votez Macron, vous l'aurez dans le fion !

Hors ligne

#4 Le 02/08/2007, à 17:02

HymnToLife

Re : [RESOLU] [crontab] Automatisation et droits d'accès

Le nom d'utilisateur ?? Depuis quand on met un nom d'utilisateur dans un crontab ? Chaque utilisateur à son crontab, qui exécute les commandes avec les droits de l'utilisateur en question...


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#5 Le 02/08/2007, à 21:19

NooP

Re : [RESOLU] [crontab] Automatisation et droits d'accès

Soit,

Mais /etc/crontab sous Ubuntu (Parce que nous parlons de GNU/Linux Ubuntu ici), ainsi que sur pratiquement tous les systèmes GNU/Linux que j'ai rencontré, contient un champ utilisateur.

Dernière modification par NooP (Le 02/08/2007, à 21:21)


Votez Macron, vous l'aurez dans le fion !

Hors ligne

#6 Le 02/08/2007, à 21:50

HymnToLife

Re : [RESOLU] [crontab] Automatisation et droits d'accès

En effet, mais généralement, on ne touche pas à /etc/crontab, tout simplement parce qu'on doit l'éditer en tant que root. Les entrées ajoutées manuellement, on les met dans le crontab de l'utilisateur, qui se trouve dans /var et qu'on édite avec crontab -e.

Dernière modification par HymnToLife (Le 02/08/2007, à 21:51)


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#7 Le 02/08/2007, à 22:02

alexduf

Re : [RESOLU] [crontab] Automatisation et droits d'accès

il doit y avoir des variables nécessaires à l'excution du script qui ne sont pas positionnées

essaie de rediriger la sortie standard de ton script vers un fichier de log, comme ca tu auras le message d'erreur
sinon il me semble que par défaut la sortie est redirigée vers un mail qui t'es envoyé en local, tu dois pouvoir le consulter, mais ne me demande pas la commande je ne la connais pas de tête.

essaie donc

/usr/bin/java -jar "$fold/selenium-server.jar" -htmlSuite "*firefox" $url "$fold/$menu" "$fold/$file" 2 > &1 >~/cron.log

ou quelque chose comme ca ^^

bon courage !

Hors ligne

#8 Le 02/08/2007, à 23:19

HymnToLife

Re : [RESOLU] [crontab] Automatisation et droits d'accès

Pourquoi ne pas faire un script Bash pour lancer les commandes et demander à cron d'exécuter le script en question ? Ça serait plus élégant que d'avoir cette commande à rallonge dans le crontab, et ça permettrait d'ajuster plus finement les variables.


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#9 Le 02/08/2007, à 23:55

Yannick_LM

Re : [RESOLU] [crontab] Automatisation et droits d'accès

Ouaip.
N'hésites pas non plus à rajouter des &> dans les coins, pour le débug, c'est utile.

Et aussi, vérifie s'il n'y a pas un problème avec les variables d'environnement.
(Je me souviens d'être resté longtemps bloqué à cause d'un DISPLAY mal initialisé)

Dernière modification par Yannick_LM (Le 02/08/2007, à 23:55)


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne

#10 Le 03/08/2007, à 09:36

fabriceO

Re : [RESOLU] [crontab] Automatisation et droits d'accès

Alors, je rajoute des infos:

Ma ligne pas belle EST dans un fichier batch.
Le reste du batch fonctionne:
- j'ai un fichier généré avant (il existe bien))
- j'écris mes résultats dans un fichier de log (mais ses résultat sont faux vu que la ligne de selenium ne me crée pas le fichier de résultat prévu...

(et je confirme que je passe par crontab -e....)

Je teste en changeant le ~ par le chemin complet (dans mon batch et dans le crontab) et je vous dit wink
=> Ca fonctionne smile (sans passer par un Root sur le cron (qui ne serait pas propre))

Merci beaucoup à tous

Hors ligne