#1 Le 25/06/2019, à 14:15
- nantesweb
Crontab : ouvrir un fichier aléatoirement dans un répertoire
Bonjour,
Je cherche à ouvrir de façon aléatoire des fichiers avec vlc dans des répértoires.
[*]Diapaorama de motivation aléatoire (photos de vacances, objectifs pros et perso...)[/*]
[*]Lecture de playliste aléatoire pour bosser[/*]
[*]Vidéo de motivation aléatoire (entreprenariat, efficacité)[/*]
[*]Vidéo de relaxation[/*]
[*]Vidéo de veille sur différents sujets[/*]
Il me suffirait d'un exemple simple pour pouvoir faire tout ça. Mais est-ce possible sans passer par un script externe appellé par Crontab ? Sachant que je ne suis pas programmeur...
Petite question. Quand on met (script trouvé) :
30 9 * * * vlc /home/pi/Bureau/VIDEOS/opus42.mp4; killall vlc
le killall vlc, ça veut dire qu'à la fin il kill tous les VLC c'est bien ça ?
Merci d'avance pour vos réponses
Hors ligne
#2 Le 25/06/2019, à 14:23
- Watael
Re : Crontab : ouvrir un fichier aléatoirement dans un répertoire
salut,
tout cela est quelque peu aléatoire !
il faut être beaucoup plus précis sur les conditions d'exécution d'un tel script.
d'ailleurs, pourquoi crois-tu que crontab peut aider ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 25/06/2019, à 14:43
- bruno
Re : Crontab : ouvrir un fichier aléatoirement dans un répertoire
Bonjour,
Pourquoi vouloir passer par un script et une tâche cron alors que la plupart des lecteurs multimédias, comme VLC, gèrent les listes de lecture et ont un mode de lecture aléatoire ?
#4 Le 25/06/2019, à 15:14
- Compte supprimé
Re : Crontab : ouvrir un fichier aléatoirement dans un répertoire
Bonjour,
le killall vlc, ça veut dire qu'à la fin il kill tous les VLC c'est bien ça ?
Si aucun nom de signal n'est spécifié, SIGTERM est envoyé.
On demande donc à vlc de bien vouloir terminer son processus .Voir le man de la commande kill pour en savoir plus sur les différant signaux que l'on peut envoyer à un processus . Pour les lister :
kill -l
#5 Le 25/06/2019, à 15:44
- nantesweb
Re : Crontab : ouvrir un fichier aléatoirement dans un répertoire
@Bruno : Je veux un "serveur de motivation" qui fonctionne tout seul et envoie des médias différents en fonction de la journée et du jour de la semaine. Je ne veux pas faire d'actions manuelles et tout automatiser via Cron ou éventuellement un script appelé par Crontab
@Watael : dans ce cas, pour démarrer comment faire en sorte qu'à telle heure, genre 9h, il me démarre un playlist d'album aléatoire dans un répertoire dans les quels je les enregistrerais ?
@pseudofab : merci pour l'explication.
Dernière modification par nantesweb (Le 25/06/2019, à 15:45)
Hors ligne
#6 Le 28/06/2019, à 15:58
- LeoMajor
Re : Crontab : ouvrir un fichier aléatoirement dans un répertoire
bonjour,
quelques idées en vrac ...
0/
shopt -s globstar nullglob
1/ fapg: liste de lecture type playlist de ce que tu veux
fapg --format=m3u -o output.m3u -s < <(shuf -n4 < <(printf "%s\n" ~/Musique/**/*.mp3))
mplayer output.m3u
idem avec ?cvlc
2/ dans le même genre avec des images
feh -ZF -D 2 -f $(shuf -n10 < <(printf "%s\n" ~/Images/**/*.{jpg,jpeg,png}))
3/ wallpaper &
un truc du genre
gsettings set org.gnome.desktop.background picture-options 'scaled'
gsettings set org.gnome.desktop.background picture-uri "file://$(shuf -n1 < <(printf "%s\n" ~/Images/**))"
4/ si cron
#!/bin/bash
shopt -s globstar nullglob
declare -a aexporter
active_session=$(loginctl --no-pager --no-legend list-sessions | awk '$2>=1000 {cmd="loginctl -p State -p Type show-session "$1; \
while (cmd|getline tmp)if(tmp~/active|x11/){sess[$1]++}; close(cmd)}; END {for (s in sess)if(sess[s]==2)print s}')
if [ -n "$active_session" ]; then
active_userid=$(loginctl -p User show-session "$active_session" | cut -d= -f2)
active_pid=$(pgrep -u "$active_userid" gnome-session) # lightdm
#active_pid=$(pgrep -u "$active_userid" gnome-session) #gdm3
#active_pid=$(pgrep -u "$active_userid" xfce-session) #xfce-session ? à vérifier
aexporter=($(awk '/^(DBUS_SESSION_BUS_ADDRESS|DISPLAY|XAUTHORITY)/ ' < <(strings /proc/${active_pid}/environ)))
export "${aexporter[@]}"
<ton code>
</ton code>
else
echo "machine en veille ou ssh ou execution d'application graphique interdite par le contexte ..." 2>/dev/null
fi
shopt -u globstar nullglob
Hors ligne