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 25/01/2015, à 23:53

Pacifick_FR42

Problème script utilisant aplay et sox appelé par cron [RÉSOLU]

Bonjour à tous smile

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 wink

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)


Archlinux sur Xiaomi Air 13

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.

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 ?

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...

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 ?

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 wink

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 sad

cron est con con, il faut tout lui dire dans le détail. wink


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... wink smile

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 wink...

Merci à tous !! smile

Dernière modification par Pacifick_FR42 (Le 26/01/2015, à 22:27)

Hors ligne