#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.
#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 < > )
#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)
#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 le problème solutionné, 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.
Hors 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...
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