#1 Le 25/01/2015, à 23:53
- Pacifick_FR42
Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
Bonjour à tous
J'ai fait un script qui fonctionne très bien, celui-ci utilise aplay et sox.
Par contre, ce script est destiné à être appeler par un crontab, et là, pas moyen, ces 2 appli ne fonctionne plus.
Quelqu'un aurait une idée du pourquoi ?
J'ai bien fait des recherche sur les variables d’environnement, mais j'ai rien trouvé de probant.
Merci de vos coup de main
Dernière modification par Pacifick_FR42 (Le 26/01/2015, à 22:21)
Hors ligne
#2 Le 26/01/2015, à 08:13
- k3c
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
Faudrait que tu nous montres ton script, ou un reproducer (le script le plus court qui met en évidence le problème)
Dernière modification par k3c (Le 26/01/2015, à 12:29)
Debian 12 sur Thinkpad reconditionné
Hors ligne
#3 Le 26/01/2015, à 11:22
- credenhill
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
hello
essayer avec
export DISPLAY=:0
Hors ligne
#4 Le 26/01/2015, à 11:42
- tiramiseb
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
credenhill: aplay ou sox a besoin d'un serveur X ? Tu es sûr ? J'ai des doutes, ce sont des logiciels en pure ligne de commande. Je ne pense pas que ça vienne de là.
Je pencherais plutôt pour un problème de PATH.
J'attends comme k3c le retour du script pour me prononcer.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#5 Le 26/01/2015, à 14:00
- Pacifick_FR42
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
Bonjour et merci à tous !
Alors, non, j'ai pas d'utilisation graphiques, uniquement en Bash
voici les passages en question :
sound=$1
time0=`/usr/bin/sox --i $sound | grep Duration`
echo "time0 : "$time0
time1=`echo $time0 |awk '{print $3}'`
echo "time1 : "$time1
time2=`echo $time1 | cut -d':' -f 3`
echo "time2 : "$time2
Duration=`echo "($time2+2.5)/1" | bc`
echo "Fichier son : "$sound
echo "Longeur du fichier son : "$Duration" Secondes"
/usr/bin/aplay "$sound"
Hors ligne
#6 Le 26/01/2015, à 14:33
- credenhill
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
je me mélange avec mplayer
capturer les erreurs dans cron en ajoutant à la ligne > /tmp/log 2>&1
Hors ligne
#7 Le 26/01/2015, à 18:35
- Pacifick_FR42
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
Bonjour,
J'ai activé le log, hélas aucun message d'erreur...
En dehors des action echo que j'ai mis
Hors ligne
#8 Le 26/01/2015, à 19:37
- tiramiseb
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
voici les passages en question
Il nous faut le script entier (le shebang, en tout cas, est important), pas uniquement des passages.
Là selon ce que tu nous montres, le seul résultat de ce script exécuté dans un cron est l'exécution de « /usr/bin/aplay "$sound" », donc « /usr/bin/aplay "$1" », les "echo" sur la sortie standard étant soit ignorés soit envoyés par e-mail, pas très utiles.
J'ai activé le log, hélas aucun message d'erreur...
En dehors des action echo que j'ai mis
Ça voudrait donc dire que sox a bien fonctionné, non ?
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#9 Le 26/01/2015, à 20:07
- Pacifick_FR42
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
Merci de ton aide,
Si sox avait bien fonctionné, j'airais les résultats ($Duration)
Il nous faut le script entier (le shebang, en tout cas, est important),
Tu peux préciser "Shibang" ?
Hors ligne
#10 Le 26/01/2015, à 20:19
- tiramiseb
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
Le shebang est la première ligne du script, celle qui commence par "#!".
http://fr.wikipedia.org/wiki/Shebang
Si sox avait bien fonctionné, j'airais les résultats ($Duration)
Mais euh tu as dit :
« J'ai activé le log, hélas aucun message d'erreur...
En dehors des action echo que j'ai mis »
Ça ne veut pas dire que tu as eu le retour de tes echo ?
Montre les contenus, montre précisément ce que tu fais, montre les retours. Pour bien comprendre et t'aider, il nous faut les données telles quelles et non ton interprétation...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#11 Le 26/01/2015, à 20:47
- Watael
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
salut,
activer le mode debug (insérer set -x sous le shebang) aussi... pourrait ne pas être superflu ? ^^
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#12 Le 26/01/2015, à 20:53
- Pacifick_FR42
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
time0 :
time1 :
time2 :
Fichier son : Serveur_1.wav
Longeur du fichier son : Secondes
Longeur du fichier son : Secondes
Là, c''est le log, rappel du code concerné :
#!/bin/bash
sound=$1
time0=`/usr/bin/sox --i $sound | grep Duration`
echo "time0 : "$time0
time1=`echo $time0 |awk '{print $3}'`
echo "time1 : "$time1
time2=`echo $time1 | cut -d':' -f 3`
echo "time2 : "$time2
Duration=`echo "($time2+2.5)/1" | bc`
echo "Fichier son : "$sound
echo "Longeur du fichier son : "$Duration" Secondes"
/usr/bin/aplay "$sound"
Edit : le rajout de set -x sous le shebang ne change rien aux fichiers logs.
Dernière modification par Pacifick_FR42 (Le 26/01/2015, à 21:02)
Hors ligne
#13 Le 26/01/2015, à 21:04
- tiramiseb
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
Comment as-tu défini ton job cron ?
La ligne précise, c'est quoi ?
Le fichier "Serveur_1.wav", où est-il ?
Sinon, par curiosité, que fait l'argument "--i" de sox ?
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#14 Le 26/01/2015, à 21:21
- Watael
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
le rajout de set -x sous le shebang ne change rien aux fichiers logs.
ouaip, il faut rediriger la sortie d'erreur vers la sortie standard, et la sortie standard vers le fichier log.
comme te l'a montré credenhill
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#15 Le 26/01/2015, à 21:25
- Pacifick_FR42
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
J'ai donc rediriger les sortie :
0,10,20,30,40,50 * * * * /home/ciso/dossier/appli.sh > /home/ciso/dossier/appli.log 2>&1
Le fichier Serveur_1.wav est à la racine de appli.sh et, est renvoyé par $1
Dernière modification par Pacifick_FR42 (Le 26/01/2015, à 21:27)
Hors ligne
#16 Le 26/01/2015, à 21:31
- Pacifick_FR42
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
@Watael : Bienvu !
/usr/bin/sox FAIL formats: can't open input file `Serveur_1.wav': No such file or directory
Ok, avec cron rajouter le path
Par contre, c'est marrant, car sous cron, ça fonctionne, mais en directe, non, ce qui déconne c'est ça :
sound=$Path$1
Dernière modification par Pacifick_FR42 (Le 26/01/2015, à 22:08)
Hors ligne
#17 Le 26/01/2015, à 21:38
- Watael
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
@Watael : Bienvu !
aucun rapport, c'est la contribution de credenhill.
0,10,20,30,40,50 * * * * /home/ciso/dossier/appli.sh > /home/ciso/dossier/appli.log 2>&1
je ne vois pas d'argument, sur cette ligne, qui sera substitué à $1
cron est con con, il faut tout lui dire dans le détail.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#18 Le 26/01/2015, à 22:10
- Pacifick_FR42
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
Oui, enfin, merci à tous, ça avance...
je ne vois pas d'argument, sur cette ligne, qui sera substitué à $1 sad
C'est à dire ?
Dernière modification par Pacifick_FR42 (Le 26/01/2015, à 22:11)
Hors ligne
#19 Le 26/01/2015, à 22:18
- Watael
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
je vais prendre appui sur une fonction, mais un script fonctionne de la même manière :
$ maFonc() { echo "tous les arguments :"; printf '>%s<\n' "$@"; echo "le premier argument : >$1<";}
$ maFonc "toto tata" ti ti
tous les arguments :
>toto tata<
>ti<
>ti<
le premier argument : >toto tata<
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#20 Le 26/01/2015, à 22:24
- Pacifick_FR42
Re : Problème script utilisant aplay et sox appelé par cron [RÉSOLU]
Tout est ok, quand j'avais fait mes tests en directe, j'avais oublié de lui envoyé le nom du fichier son ($1)
Reste plus qu'a tester que sous cron, que je reçois bien l'appel sur mon tel portable ...
Merci à tous !!
Dernière modification par Pacifick_FR42 (Le 26/01/2015, à 22:27)
Hors ligne