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 13/11/2017, à 05:56

Skyroots

crontab et lecture aléatoire d'une piste mp3

Bonjour,

Je souhaite programmer tous les jours l'ouverture d'une piste musicale mp3, une seule, de manière aléatoire dans un répertoire.
J'arrive à lancer la commande sans le crontab depuis la console et ça marche :

 n=$(($RANDOM%`ls musique/repertoire1/*.mp3|wc -l`+1)) | env DISPLAY=:0 mplayer "$(ls musique/repertoire1/*.mp3|sed -n "$n"p)" 

Par contre, pour le lancer avec crontab, rien ne se passe:

 sudo crontab -e 
 30 10 * * * n=$(($RANDOM%`ls musique/repertoire1/*.mp3|wc -l`+1)) | env DISPLAY=:0 mplayer "$(ls musique/repertoire1/*.mp3|sed -n "$n"p)" 

Auriez-vous une idée de comment ça pourrait marcher?

Merci par avance pour vos réponses !!!!


Je débute Linux !
(Ubuntu 16.04.5 LTS)

"L'ouverture d'esprit n'a jamais fait de fracture au crâne"

Hors ligne

#2 Le 13/11/2017, à 06:25

bruno

Re : crontab et lecture aléatoire d'une piste mp3

Bonjour,

Il faut utiliser des emplacements absolus dans ton crontab (ou préciser la variable PATH) : /home/toto/musique… /usr/bin/mplayer, etc.

Hors ligne

#3 Le 13/11/2017, à 07:31

pingouinux

Re : crontab et lecture aléatoire d'une piste mp3

Bonjour,
Pour info, pour choisir aléatoirement un fichier dans ton répertoire :

shuf -n1 -e /chemin.../musique/repertoire1/*.mp3

Hors ligne

#4 Le 13/11/2017, à 17:06

Skyroots

Re : crontab et lecture aléatoire d'une piste mp3

Bonjour et merci pour vos réponses !

@bruno: j'ai testé la commande suivante mais ça ne marche pas avec crontab (en console normale oui):
48 13 * * * n=$(($RANDOM%`ls /home/utilisateur1/musique/repertoire1/*.mp3|wc -l`+1)) ; env DISPLAY=: mplayer "$(ls /home/utilisateur1/musique/repertoire1/*.mp3|sed -n "$n"p)"

@pingouinux: j'ai testé la commande suivante mais ça ne marche pas avec crontab (en console normale oui):
48 13 * * * shuf -n1 -e /home/utilisateur1/musique/repertoire1/*.mp3 ; env DISPLAY=:0 mplayer "$(ls /home/utilisateur1/musique/repertoire1/*.mp3|sed -n "$n"p)"

D'autres idées ? merci par avance ;-)
ps: j'ai l'impression que c'est la première commande "choix aléatoire du fichier" qui ne se lance pas avec crontab, peut-être qu'il faut ajouter quelque chose pour dire à cron "le choix aléatoire doit se faire sur la commande qui suit"... ? ce qui est bizarre c'est que ces deux commandes fonctionnent dans la console normale.


Je débute Linux !
(Ubuntu 16.04.5 LTS)

"L'ouverture d'esprit n'a jamais fait de fracture au crâne"

Hors ligne

#5 Le 13/11/2017, à 17:13

bruno

Re : crontab et lecture aléatoire d'une piste mp3

L'emplacement absolu de mplayer n'est pas indiqué (a priori ce doit être /usr/bin/mplayer)… Et merci d'utiliser les balises code (petites icone < > )

Hors ligne

#6 Le 13/11/2017, à 17:52

Skyroots

Re : crontab et lecture aléatoire d'une piste mp3

Merci,
J'ai essayé en complétant mais ça ne marche toujours pas avec crontab (dans la console normale, oui):

28 17 * * * /usr/bin/mplayer -shuffle /home/utilisateur1/musique/repertoire1/*.mp3

Je débute Linux !
(Ubuntu 16.04.5 LTS)

"L'ouverture d'esprit n'a jamais fait de fracture au crâne"

Hors ligne

#7 Le 13/11/2017, à 18:30

bruno

Re : crontab et lecture aléatoire d'une piste mp3

Je viens d'essayer ta ligne dans mon crontab et cela fonctionne parfaitement à condition de ne pas lancer cela en root comme tu le fais (pas de sudo devant crontab -e)

Dernière modification par bruno (Le 13/11/2017, à 18:30)

Hors ligne

#8 Le 13/11/2017, à 18:31

erresse

Re : crontab et lecture aléatoire d'une piste mp3

Bonjour,
Pourquoi lances-tu le crontab avec "sudo" ? Tu veux faire jouer cette piste à quel moment ? Lorsque tu ouvres ta session, tu pourrais lancer la commande dans les applications au démarrage, sans utiliser "sudo"...
Edit: Grillé par bruno !

Dernière modification par erresse (Le 13/11/2017, à 18:33)


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

En ligne

#9 Le 13/11/2017, à 18:49

Skyroots

Re : crontab et lecture aléatoire d'une piste mp3

C'est bon j'ai trouvé !
Il faut rajouter la redirection des erreurs à la fin.
Donc voici le script qui fonctionne:

sudo crontab -e
15 18 * * * env DISPLAY=:0 /usr/bin/mplayer -shuffle /home/utilisateur1/musique/repertoire/*.mp3 >/tmp/cron.log 2>&1

Et oui j'ai besoin d'être en sudo car je me fais un super script réveil-matin qui allume l'ordi, lance une piste aléatoire, et éteint l'ordi :-) Mais merci pour l'info, je ne savais pas que sans sudo ça fonctionnait, et j'aurai pu bricoler mais ce serait moins pratique... bref.

Il me reste encore un problème, car shuffle lit aléatoirement l'ensemble des pistes. Je veux qu'une seule piste soit lue et cela de manière aléatoire. Et le script suivant ne fonctionne pas:

19 18 * * * env DISPLAY=:0 /usr/bin/mplayer ; shuf -n1 -e /home/utilisateur1/musique/repertoire/*.mp3 >/tmp/cron.log 2>&1

Des idées ?


Je débute Linux !
(Ubuntu 16.04.5 LTS)

"L'ouverture d'esprit n'a jamais fait de fracture au crâne"

Hors ligne

#10 Le 13/11/2017, à 18:54

pingouinux

Re : crontab et lecture aléatoire d'une piste mp3

Peut-être ceci :

19 18 * * * env DISPLAY=:0 /usr/bin/mplayer "$(shuf -n1 -e /home/utilisateur1/musique/repertoire/*.mp3)" >/tmp/cron.log 2>&1

Hors ligne

#11 Le 13/11/2017, à 18:56

Skyroots

Re : crontab et lecture aléatoire d'une piste mp3

Oui parfait ça marche !
génial, merci à vous


Je débute Linux !
(Ubuntu 16.04.5 LTS)

"L'ouverture d'esprit n'a jamais fait de fracture au crâne"

Hors ligne

#12 Le 13/11/2017, à 20:37

Skyroots

Re : crontab et lecture aléatoire d'une piste mp3

Je ne comprends plus rien, j'ai redémarré mon pc et maintenant ces lignes ne marchent plus alors que je n'ai rien changé sauf l'heure de lancement... c'est tellement bizarre ?! impossible de les refaire fonctionner avec crontab, en sudo ou non... hmm


Je débute Linux !
(Ubuntu 16.04.5 LTS)

"L'ouverture d'esprit n'a jamais fait de fracture au crâne"

Hors ligne

#13 Le 13/11/2017, à 22:32

Skyroots

Re : crontab et lecture aléatoire d'une piste mp3

encore moi !
alors.. je sais d'où ça vient mais j'ai encore un souci pour mon résultat final, qui du coup ne marche pas.
Si j'exécute la commande "xhost +", alors les lignes de mon sudo crontab fonctionnent. Pour que ça marche, il faut donc exécuter xhost + à chaque nouvelle session.

Mais mon but c'est de programmer le démarrage du pc sans être là, et qu'il lance ensuite automatiquement ses tâches indiquées dans crontab. Il faut donc que je puisse mettre cette commande dans crontab avant les lignes de lancement des fichiers mp3 avec mplayer. Mais je n'y arrive pas, auriez-vous une idée? Les commandes suivantes ne permettent pas d'exécuter xhost +:

sudo crontab -e
30 22 * * * xhost +

merci par avance, je suis proche du but !!


Je débute Linux !
(Ubuntu 16.04.5 LTS)

"L'ouverture d'esprit n'a jamais fait de fracture au crâne"

Hors ligne

#14 Le 13/11/2017, à 22:44

melixgaro

Re : crontab et lecture aléatoire d'une piste mp3

salut,

Une piste peut-être bête… Utilises-tu Gnome avec Wayland ou Gnome avec Xorg ? Wayland empêche le lancement de certaines applications avec sudo (peut-être est-ce aussi le cas de mplayer ?).


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#15 Le 13/11/2017, à 23:17

Skyroots

Re : crontab et lecture aléatoire d'une piste mp3

Merci pour ton message. J'utilise Gnome avec Wayland.
Mais lorsque je fais "xhost +" alors cela lance correctement les mplayers de mon sudo crontab donc j'imagine que le problème ne vient pas de la compatibilité wayland-mplayer en tant que sudo... et avec crontab (sans sudo) les lignes ne marchent pas non plus...

Est-ce possible d'exécuter "xhost +" avec sudo crontab ?? ça ne semble pas fonctionner


Je débute Linux !
(Ubuntu 16.04.5 LTS)

"L'ouverture d'esprit n'a jamais fait de fracture au crâne"

Hors ligne

#16 Le 13/11/2017, à 23:46

melixgaro

Re : crontab et lecture aléatoire d'une piste mp3

si parce que justement, le xhost est l'astuce bancale pour lancer des applis avec sudo en gardant wayland


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#17 Le 14/11/2017, à 02:48

Skyroots

Re : crontab et lecture aléatoire d'une piste mp3

Bon alors… je n’ai pas trouvé de solution pour lancer xhost + avec sudo crontab.

@melixgaro: Pour l'histoire de Wayland, j'ai essayé avec vlc et sudo crontab, mais ça ne marche pas non plus. J'essaierai plus tard en téléchargeant un autre lecteur supporté par wayland en sudo crontab...

Par simplicité, je vais donc lancer mes lignes avec crontab (sans sudo) car je me suis rendu compte que ça marchait, mais cette fois-ci SEULEMENT si je ne mets pas la redirection des messages d’erreur.

J'ai encore 2 problèmes à résoudre pour que tout marche complètement :
1/ si le crontab lance les lignes tous les jours, n’est-ce pas problématique pour le pc de ne pas avoir de redirection d'erreur ?

2/ dans le crontab je termine par éteindre l'ordi, mais aucunes de ces lignes ne marchent (en sudo crontab par contre ça marche):

00 00 * * * /sbin/shutdown -h now
00 00 * * * /sbin/shutdown -h "now"
00 00 * * * root /sbin/shutdown -h now

merci par avance si vous avez des idées/solutions !


Je débute Linux !
(Ubuntu 16.04.5 LTS)

"L'ouverture d'esprit n'a jamais fait de fracture au crâne"

Hors ligne