Pages : 1
#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 )
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....
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...
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 (((
#4 Le 11/08/2008, à 09:34
- seb0uil
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 (((
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=.....)
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)