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 11/08/2008, à 08:33

hellixir

Lancement d'un script avec cron

Bonjour,

J'ai quelques soucis avec le lancement de mon script avec cron, c'est la premiere fois que je l'utilise, le principe n'est pas bien complique et pour faire un test de syntax j'ai ecrit la ligne suivante :

*/2	*	*	*	*	echo "Seb le cretin"

Cette ligne fonctionne bien (on se demande pourquoi tongue)

Par contre quand je met la ligne dont j'ai besoin :

20 	8-20/1 	* 	* 	*	/home/seb/script.sh

Ben... comment dire... rien ne se passe.... sad

Je vous trans met mon script au cas ou cela viendrai de la mais je ne pense pas :

#!/bin/sh
echo "lancement du script a $(date)" >> /home/seb/script.log

# Enregistrement de la video
vlc -V X11 v4l:/dev/video0:size=320x240 --sout "#transcode{vcodec=mp1v, vb=1024, scale=2}:duplicate{dst=display,dst=standard{access=file, mux
=mpeg1, dst="/home/seb/video.avi"}}" --noaudio &

sleep 1m

killall vlc

Encodage de la video
ffmpeg -i /home/seb/video.avi -b 1024 -f flv -y /home/seb/video.flv

# Envoie de la video sur le serveur ftp
 set -x

function netrc() {
var=$(ls -al $HOME/.netrc | wc -l)
if [ $var == 0 ] 
then
echo machine xx.xx.xx.xx >> $HOME/.netrc
echo login mon_login >> $HOME/.netrc
echo password ******** >> $HOME/.netrc
chmod 600 $HOME/.netrc		
fi
}

netrc

cd $HOME
ftp << EOF
open xx.xx.xx.xx
mon_login
*********
cd /dev/test/
put 
/home/seb/video.flv
/dev/test/video.flv
y
close
quit
EOF

echo "Fin du script a $(date)" >> /home/seb/script.log

Mon script est executable et fonctionne tres bien lors d'un lancement via la console.
Merci pour vos futur reponse

Cdt, Seb.

#2 Le 11/08/2008, à 08:42

seb0uil

Re : Lancement d'un script avec cron

Salut,

Rien ne se passe du tout, ou il y a quand même quelque chose dans /home/seb/script.log ?
Car ce qu'il faut faire attention avec les cron c'est que les variables d'environnement ne sont pas initialisée (donc pas de PATH par exemple) il peut donc être utile de le faire au début de ton script.

Enfin as tu regarder les log de cron (cf doc cron sur la doc) via les mail, la cause de l'erreur y est peut etre indiquée...


Java stuff ::
tPortal.. ma petite implémentation de la JSR168
jlibParam.. pooling, paramétrage etc...

Hors ligne

#3 Le 11/08/2008, à 08:55

hellixir

Re : Lancement d'un script avec cron

seb0uil,

J'ai verifié mon script.log, il se lance et s'arrete correctement.
Par contre lorsque je lance mon script via la console j'ai l'interface graphique de vlc qui apparait et ma cam s'active (lumiere verte eclairé) et la rien du tout... donc je suppose que le probleme provient de vlc... mais je ne vois pas du tout pourquoi sad(((

#4 Le 11/08/2008, à 09:34

seb0uil

Re : Lancement d'un script avec cron

hellixir a écrit :

seb0uil,

J'ai verifié mon script.log, il se lance et s'arrete correctement.
Par contre lorsque je lance mon script via la console j'ai l'interface graphique de vlc qui apparait et ma cam s'active (lumiere verte eclairé) et la rien du tout... donc je suppose que le probleme provient de vlc... mais je ne vois pas du tout pourquoi sad(((

En fait qd tu lances en ligne de commande, vlc sait sur quel display faire l'affichage (via la variable DISPLAY) mais qd tu lances en cron, cette variable n'existe pas, et donc pas d'affichage.

Image toi que tu ais plusieurs session gnome de lancée sur ton pc, dans laquelle vlc devrait s'ouvrir ?

pour modifier cela, tu peux vérifier la valeur de DISPLAY (via un echo $DISPLAY) puis modifier ton script en ajoutant export DISPLAY=......

Corrige peut etre aussi ton script en ajoutant au début la déclaration du PATH (export PATH=.....)


Java stuff ::
tPortal.. ma petite implémentation de la JSR168
jlibParam.. pooling, paramétrage etc...

Hors ligne

#5 Le 11/08/2008, à 09:49

hellixir

Re : Lancement d'un script avec cron

Youpi ca fonctionne \o/

effectivement il faut preciser le display et au passage j'an ai profiter de lancer une autre console, si je me suis mal exprimé je link ma ligne :

*/20 * * * * export DISPLAY=:0 &&  gnome-terminal --command="sh /home/seb/script.sh"

Merci baucoup.

(je ne sais pas si il faut mettre un resolu mais en tout cas ca l'est)

#6 Le 11/08/2008, à 10:53

seb0uil

Re : Lancement d'un script avec cron

mais attention, pcque pour ton cron, il ne fonctionne donc que si tu es loggué sur ton poste


Java stuff ::
tPortal.. ma petite implémentation de la JSR168
jlibParam.. pooling, paramétrage etc...

Hors ligne