#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
=> Ca fonctionne (sans passer par un Root sur le cron (qui ne serait pas propre))
Merci beaucoup à tous
Hors ligne