Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/12/2011, 11h45   #1
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 89
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 89
Points : 34
Points : 34
Par défaut cron problème environnement ?

Bonjour,

J'ai un script (lance.sh) qui fonctionne lorsque je le lance manuellement.

Mais quand je le lance via un cron, il ne fonctionne pas et je ne comprends pas pourquoi.

crontab
Code :
45 0,12 * * 1-5 /monjob/lance.sh
lance.sh
Code :
1
2
3
export JAVA_HOME=/applis/java/jre1.6.0_25
cd /monjob
./run.sh  > /monjob/logs/log.txt 2>&1
run.sh exécute un script TalendOpen Studio qui met à jour une base de données MYSQL
Log à l'éxécution via le cron
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Exception in component tMysqlConnection_1
java.sql.SQLException: Unexpected exception encountered during query.
   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2608)
   at com.mysql.jdbc.ConnectionImpl.configureClientCharacterSet(ConnectionImpl.java:1856)
   at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3457)
   at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2328)
   at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2122)
   at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:774)
   at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:371)
   at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
   at java.sql.DriverManager.getConnection(libgcj.so.7rh)
   at java.sql.DriverManager.getConnection(libgcj.so.7rh)
   at .monjob.tMysqlConnection_1Process(monjob.java:6296)
   at .monjob.tMSSqlInput_1Process(monjob.java:2219)
   at .monjob.tMSSqlConnection_1Process(monjob.java:490)
   at .monjob.runJobInTOS(monjob.java:7550)
   at .monjob.main(monjob.java:7445)
Caused by: java.io.CharConversionException
   at gnu.gcj.convert.Input_iconv.read(libgcj.so.7rh)
   at java.lang.String.init(libgcj.so.7rh)
   at java.lang.String.<init>(libgcj.so.7rh)
   at com.mysql.jdbc.SingleByteCharsetConverter.<init>(SingleByteCharsetConverter.java:155)
   at com.mysql.jdbc.SingleByteCharsetConverter.initCharset(SingleByteCharsetConverter.java:110)
   at com.mysql.jdbc.SingleByteCharsetConverter.getInstance(SingleByteCharsetConverter.java:88)
   at com.mysql.jdbc.ConnectionImpl.getCharsetConverter(ConnectionImpl.java:2785)
   at com.mysql.jdbc.StringUtils.getBytes(StringUtils.java:682)
   at com.mysql.jdbc.Buffer.writeStringNoNull(Buffer.java:666)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2061)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2562)
   ...14 more
Exception in thread "main" java.lang.NullPointerException
   at .monjob$TalendException.printStackTrace(monjob.java:157)
   at .monjob$TalendException.printStackTrace(monjob.java:147)
   at .monjob$TalendException.printStackTrace(monjob.java:147)
   at .monjob.runJobInTOS(monjob.java:7554)
   at .monjob.main(monjob.java:7445)
Si quelqu'un à une piste, je suis preneuse !!

Merci
loulag07 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/12/2011, 15h03   #2
Membre actif
 
Homme
Inscription : avril 2004
Messages : 91
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2004
Messages : 91
Points : 154
Points : 154
Bonjour,

As tu essayé de repositionner toutes tes variables d'environnement (Java et mysql) ? Le cron ne source pas les fichiers .bashrc et équivalent lorsqu'il se lance. Mais j'avoue que l'erreur de conversion semble bizarre...
__________________
First, they ignore you. Then, they laught at you.Then, they fight you. Then, you win.

Mohandas Gandhi
dokho est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/12/2011, 15h34   #3
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 89
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 89
Points : 34
Points : 34
J'avais commencé à le faire avec mon script lance.sh

Je n'ai rien de particulier dans .bashrc
Mais j'ai recopié l'intégralité du .bash_profile

Nouveau lance.sh
Code :
1
2
3
4
5
6
7
8
9
10
11
12
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
 
PATH=$PATH:$HOME/bin:/sbin
export PATH
export JAVA_HOME=/applis/java/jre1.6.0_25
export PATH=$JAVA_HOME/bin:$PATH
 
cd /monjob
 
./run.sh  > /monjob/logs/log.txt 2>&1
Et cela fonctionne !!

Merci
loulag07 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h45.


 
 
 
 
Partenaires

Hébergement Web