Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 24-10-2010 15:56:20

gustave
Membre
Distrib. : Debian
Noyau : 2.6.26-2-686
(G)UI : Gnome
Inscription : 01-04-2009

Lecture répertoire vidéo en boucle [Résolu]

Je tente de surveiller un repertoire puis simplement me donner la liste nominative de son contenu.
inotify est la pour faire ca mais je ne sais pas comment le faire fonctionner.
Ci dessous un bout de script trouver sur le net qui servait a donner des droit sur les fichiers déposé.

DOSSIER_SURVEILLE='/home/justclovideo'
UTILISATEUR='utilisateur'
inotifywait -m -r --format '%w%f' -e create -e moved_to "${DOSSIER_SURVEILLE}" | while read LINE
do
    chown -R ${UTILISATEUR}:${UTILISATEUR} "${LINE}"
done


je ne sai spas que faire du script alors je l'ai mios dans init.d j'ai fait un update
update-rc.d surveil.sh start 99 2 .
erreur rencontrée
update-rc.d surveil.sh start 99 2 .

update-rc.d: using dependency based boot sequencing
insserv: warning: script 'K01surveil.sh' missing LSB tags and overrides
insserv: warning: script 'surveil.sh' missing LSB tags and overrides


J'ai mit dans le script

#!/bin/sh
DOSSIER_SURVEILLE='/home/justclo/video'

inotifywait -m -r --format '%w%f' -e create -e moved_to "${DOSSIER_SURVEILLE}" $ | while read LINE
do
cd $DOSSIER_SURVEILLE
>liste
ls >>liste
done


Je vais dans le repertoire, je vide le fichier et l'enchirit des nouveaux documents
il s'appelera plus tard liste.m3u

Mon niveau vol pas haut donc pas de mauvais commentaire. smile

Dernière modification par gustave (28-10-2010 10:13:03)

Hors ligne

#2 25-10-2010 01:28:30

Asmodée
Membre
Lieu : /dev/null
Distrib. : Squeeze
Inscription : 16-05-2010

Re : Lecture répertoire vidéo en boucle [Résolu]

Salut,

Je n'ai pas lu tes scripts (la flemme à c't'heure, et un problème à la fois) et je ne suis pas sûr d'avoir bien compris ce que tu veux faire... Si le contenu doit être vérifié à chaque démarrage, faire ou compléter un script init n'est pas bête, mais c'est le mal...

Regarde plutôt du côté de cron ou anacron. Un bref tour sur le wiki te diras ce dont il s'agit et comment l'utiliser. C'est pas difficile.

Hors ligne

#3 25-10-2010 06:33:37

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 8 (jessie) 64 bits + backports
Noyau : 4.6.0-0.bpo.1-amd64
(G)UI : gnome 3.14.1
Inscription : 21-10-2008

Re : Lecture répertoire vidéo en boucle [Résolu]

Genre, taper "crontab" dans la case Recherche du wiki df et on obtient :
http://debian-facile.org/doc:systeme:crontab

Nooooon ?
Et si !
big_smile

Amitié, Jojo

"Définition d'eric besson : S'il fallait en chier des tonnes pour devenir ministre, il aurait 2 trous du cul." - JP Douillon
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

En ligne

#4 25-10-2010 18:56:34

gustave
Membre
Distrib. : Debian
Noyau : 2.6.26-2-686
(G)UI : Gnome
Inscription : 01-04-2009

Re : Lecture répertoire vidéo en boucle [Résolu]

Cron !  je l'utilise déja pour mes sauvegardes, cron.daily etc...
j'ai pas besoin de cron pour ca, ca marcherait aussi bien entendu, mais il y a inotify qui est la pour ca, il surveille en permanence le répertoire puis on lui ordonne une action, quand "true".
Je connait cron mais ca doit etre instanetané, je vais qunad meme pas faire une requette cron toutes les secondes.
Au lieu de me filer la doc de cron, si vous ne voyez pas ce que je demande n'hesiter pas a me demander de reformuler ma question.

Hors ligne

#5 25-10-2010 19:40:42

Asmodée
Membre
Lieu : /dev/null
Distrib. : Squeeze
Inscription : 16-05-2010

Re : Lecture répertoire vidéo en boucle [Résolu]

Si tu vois qu'on ne voit pas, tu peux aussi nous éclairer...

http://wiki.debian.org/LSBInitScripts pour la raison pour laquelle tu as une erreur. Et je rappelle encore qu'utiliser init pour ça n'est pas génial.

Cron et anacron ont été mes deux idées puisque les 3/4 du temps utiliser inotify et consorts n'est pas vraiment justifiable... Mais avec les infos qu'on a, difficile de proposer quelque chose de plus efficace.

Ce qui me faisait dire que cron ou anacron convenait, c'était que tout ce que faisait ton script, c'est mettre à jour un fichier. Sans plus d'infos, il me semble légitime de se dire que tu ne vas pas accéder aux fichier toutes les 2 minutes...

(Ton script ne fonctionnera pas d'ailleurs, mais comme je l'ai dit, un problème à la fois...)

Si le script est lié à l'exécution d'un service, tu ferais mieux de le lier au service.


Mais à la fin, ce serait bien d'expliquer ton projet histoire de donner notre avis sur l'ensemble et pas un point précis : l'utilisation de inotify peut-être parfaitement adapté à ton cas, mais il n'est pas rare qu'on vienne ici pour nous demander une chose, qu'on se démène à donner des solutions et qu'à la fin on apprend que ce que voulait vraiment la personne est disponible et/ou accessible bien plus simplement d'une autre façon...

Dans ton cas déjà, tu veux encombrer ton système et surtout init d'un script fait main dont tu dis toi-même qu'il n'est pas forcément génial. Pourquoi pas, par exemple, profiter de logiciels déjà présents comme gamin, incron, fsniper ou fam ?
C'est nettement plus propre...

Dernière modification par Asmodée (25-10-2010 19:52:04)

Hors ligne

#6 25-10-2010 19:54:20

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 8 (jessie) 64 bits + backports
Noyau : 4.6.0-0.bpo.1-amd64
(G)UI : gnome 3.14.1
Inscription : 21-10-2008

Re : Lecture répertoire vidéo en boucle [Résolu]

il n'est pas rare qu'on vienne ici pour nous demander une chose, qu'on se démène à donner des solutions et qu'à la fin on apprend que ce que voulait vraiment la personne est disponible et/ou accessible bien plus simplement d'une autre façon.


Et plus d'une fois ! Il est vrai. big_smile

Allez gustave, dis-nous tout sur ta licite entreprise, que veux-tu faire dans la totalité ? wink

il y a inotify qui est la pour ca, il surveille en permanence le répertoire puis on lui ordonne une action, quand "true".


Tchap ? smile

Amitié, Jojo


"Définition d'eric besson : S'il fallait en chier des tonnes pour devenir ministre, il aurait 2 trous du cul." - JP Douillon
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

En ligne

#7 26-10-2010 23:07:31

gustave
Membre
Distrib. : Debian
Noyau : 2.6.26-2-686
(G)UI : Gnome
Inscription : 01-04-2009

Re : Lecture répertoire vidéo en boucle [Résolu]

Avant tout ! merci de votre attention et votre dévouement, et je donc vais m'expliquer un petit peu mieux.
J'aimerai par cette surveillance de répertoire creer un fichier lecture video m3u ou meme xml, je verrai en fonction,  lorsque que l'on dépose une nouvelle vidéo, le fichier lecture doit se regénéré, je n'ai rien de toruvé de mieux que "inotify" et peut etre "fam", vous m'aiguillerez.
Ca semble etre assez simple, un script sans doute pas trés long, mais...
En tout cas inotify m'interresse pour d'autres choses il me vient plein d"idée, mais j'en suis pas encore la.

Hors ligne

#8 27-10-2010 01:52:16

Asmodée
Membre
Lieu : /dev/null
Distrib. : Squeeze
Inscription : 16-05-2010

Re : Lecture répertoire vidéo en boucle [Résolu]

Tu veux utiliser quoi pour l'upload ? Serveur openSSH ? Serveur FTP ? Autre ?

Pour chacune de ces solutions, il doit y avoir moyen de lancer un script à la déconnexion... Un petit script anacron toutes les heures pour être sûr et certain que la mise à jour est OK même en cas de bug et ça passe.

C'est juste une idée. Ce serait plus propre dans le sens où un script ne resterait pas en attente. Je ne sais pas comment inotifywait est implémenté, il peut consommer des ressources ou bloquer un processeur (j'en doute, mais c'est à vérifier) et surtout : si le script plante, n'est pas lancé ou autre, ce n'est pas facile de le vérifier. Il pourrait toujours être possible de vérifier de temps en temps avec cron, mais ce n'est pas la panacée.

La méthode de la "déconnexion" me semble plus efficace.


Après, si tu veux quand même poursuivre dans ta voie (ce qui n'est pas bête), alors il faudrait ajouter une référence à ton script directement dans les fichiers de configuration ou init.d du service en question.

Hors ligne

#9 27-10-2010 13:22:16

gustave
Membre
Distrib. : Debian
Noyau : 2.6.26-2-686
(G)UI : Gnome
Inscription : 01-04-2009

Re : Lecture répertoire vidéo en boucle [Résolu]

J'ai bien pensé a ca , par le browser en php, une fois finit l'upload je réactualise mon fichier en fonction du contenu du répertoire, ca je sais faire, mais si le fichier vient d'une carte SD, il faut que ce soi lors de son insertion.
Tiens pas bete ca, mais un script pour le mount de la carte ou mieux de la clef usb .
Quelqu'un sait t'il faire ca ?

Hors ligne

#10 27-10-2010 13:28:01

Haricophile
Adhérent(e)
Lieu : Pignans (Var)
Distrib. : SID
Noyau : 4.0.0-1-amd64
(G)UI : Mate / i3 selon...
Inscription : 14-09-2009

Re : Lecture répertoire vidéo en boucle [Résolu]

Si j'ai compris c'est pour surveiller un répertoire personnel. Aucun besoin de lancer ça au démarrage à priori. L'emplacement du lancement du script devrait plutôt se situer à l'ouverture de la session.

« La religion et l'art sont les luxes des lâches, qui permettent de fuir la réalité quand elle devient trop difficile à affronter. La différence c'est que la religion transforme tout mensonge en vérité alors que l'art transforme toute vérité en mensonge. »

Hors ligne

#11 27-10-2010 18:14:12

Asmodée
Membre
Lieu : /dev/null
Distrib. : Squeeze
Inscription : 16-05-2010

Re : Lecture répertoire vidéo en boucle [Résolu]

Je dirais même plus Haricophile, au moment du lancement du service en question... Ce n'est pas parce qu'une session est lancée que le service tourne smile

gustave, je ne suis pas très d'accord sur 2 choses:
1) Un script php qui te permet directement d'avoir accès au système de fichier du serveur, méfie-toi, ça ne se fait pas n'importe comment... J'aurais même tendance à dire que ça ne se fait pas tout court pour des raisons de sécurité.
2) Il faut différencier l'upload du fichier et la mise à jour de ton fichier de référence. Tu n'as pas besoin que le fichier d'origine soit présent... Seulement le fichier final dans le répertoire en question.


Pour un script qui mount une carte, c'est très très simple. Mais on n'y est pas encore rendu. J'aimerais que tu nous expliques finalement ce que tu veux faire DANS LES DÉTAILS et comment. J'ai juste l'impression que tu te compliques la vie...

Par exemple, je viens de repenser à ça... Le fichier de références est-il indispensable ? Si c'est pour obtenir la liste des fichiers du répertoire deux fois dans la journée, tu boufferais moins de ressources à aller DIRECTEMENT voir ce qu'il y a à l'instant t. Si c'est pour avoir accès au contenu à distance via un site web par exemple, sauf à avoir 60 requêtes par minute, interroger directement le serveur sur le contenu du répertoire est bien plus efficace que laisser tourner un démon douteux...

EDIT: Je veux juste rappeler ici que l'utilisation de fam et inotify (ou autres) est souvent restreinte à des domaines bien spécifiques : par exemple, c'est grâce à cela que certains indexeurs de disque dur sont si performants (je ne parle pas de mlocate qui est resté oldschool) : au lieu d'aller farfouiller tout le disque et enregistrer tous les changements dans la base de données de l'indexeur, il est plus judicieux de faire la mise à jour sur les seuls fichiers qui ont été changés, créés, supprimés...

La caractéristique de cette fonction du noyau n'est donc pas de suivre l'évolution d'un répertoire dont tu sais quand il sera changé (sur ton serveur, à chaque fois qu'un fichier est soumis, tu peux faire une mise à jour : tu sais que ton fichier est là). Non, sa caractéristique est de suivre des changements non prévisibles, comme une suppression par un utilisateur...

Dernière modification par Asmodée (27-10-2010 18:21:23)

Hors ligne

#12 27-10-2010 19:40:56

gustave
Membre
Distrib. : Debian
Noyau : 2.6.26-2-686
(G)UI : Gnome
Inscription : 01-04-2009

Re : Lecture répertoire vidéo en boucle [Résolu]

Mon but, faire turner un player en boucle qui va lire les vidéos qui seront dans un répertoire, ce n'est donc pas un pc avec quelqu'un devant, juste une personne de temps en temps ou tout les jours viendra suppimer ou déposer une vidéo nouvelle, ceux-ci seront avec un player quelconque.
Et ce player doit simplement rafaichir sont cache ou liste (m3u,xml) afin de lire la ou les nouvelle(s) vidéo, je ne cherche pas a avoir un pc avec des protections particuliéres en termes de sécurités, ce sera trés certainement monter dans un serveur 19" .


Pour le lancement au démarrage, je ne sait pas a quoi sert précisément init.d , je sais que ce sont les processus lancer au démarrage , je ne sais pas comment faire fonctionner inotify en fait.

Dernière modification par gustave (27-10-2010 19:43:59)

Hors ligne

#13 27-10-2010 21:28:38

Asmodée
Membre
Lieu : /dev/null
Distrib. : Squeeze
Inscription : 16-05-2010

Re : Lecture répertoire vidéo en boucle [Résolu]

Bon déjà, c'est plus clair !

Alors, suivant comment tu veux envoyer les nouvelles vidéos, tu peux procéder de plein de façons différentes...

En USB, tu peux simplement demander au service qui va monter ta clé de faire office "d'autorun" : un petit script ou fichier sur ta clé pourra être interprété sitôt celle-ci de branchée et la copie et/ou la suppression sera guidée par ce script.

Si c'est par accès ftp, même chose...

Sinon, encore plus simple et plus sécurisé (décidément, tu te compliquais la vie avec inotify!) :
1) tu demandes à ton lecteur de lire les vidéos contenues dans le dossier (pas besoin de fichier pour ça ou alors, il peut être généré à la volée)
2) Quand toutes les vidéos ont été lues, le script qui a appelé le lecteur refait une boucle, vérifie le contenu du dossier ou relance carrément le lecteur avec les options qui vont bien pour lire tout le dossier...

Ça, c'est simplisme !

Comme je l'ai dit pour inotify, son utilisation est extrêmement restreinte. Quand tu en as parlé, j'ai pensé à un site de "partage" dirons-nous sur lequel des personnes pouvaient laisser des vidéos de nombreuses façon différentes (ftp, nfs, ssh, http, etc.) et il fallait maintenir une liste en direct du contenu du répertoire. C'est réellement ce genre de choses qu'implique l'utilisation d'inotify ! Quand je dis que c'est restreint : c'est utilisé uniquement quand il faut savoir à l'instant t que quelque chose a été modifié.

Pour ton cas d'ailleurs, inotify n'aurait pas marché smile
Quand ton lecteur vidéo se charge, il charge la playlist en mémoire. Tu auras beau faire toutes les modifications que tu souhaites dans le fichier, pour qu'elles soient prises en compte par le lecteur, il faut le recharger (à moins qu'il ait une option de mise à jour périodique et dans ce cas, tu cales cron dessus). Si tu peux le recharger, alors tu peux mettre à jour ta liste wink

Dernière modification par Asmodée (27-10-2010 21:30:50)

Hors ligne

#14 27-10-2010 22:05:42

gustave
Membre
Distrib. : Debian
Noyau : 2.6.26-2-686
(G)UI : Gnome
Inscription : 01-04-2009

Re : Lecture répertoire vidéo en boucle [Résolu]

Sinon, encore plus simple et plus sécurisé (décidément, tu te compliquais la vie avec inotify!) :
1) tu demandes à ton lecteur de lire les vidéos contenues dans le dossier (pas besoin de fichier pour ça ou alors, il peut être généré à la volée)
2) Quand toutes les vidéos ont été lues, le script qui a appelé le lecteur refait une boucle, vérifie le contenu du dossier ou relance carrément le lecteur avec les options qui vont bien pour lire tout le dossier...

Ça, c'est simplisme !


Je n'y suis pas arrivé comme ca, ca ne boucle pas, je ne sais pas faire une boucle
while "lancement du player" mplayer ./video/*
     do  "fichier 1"....
done

Peut tu m'aider sur ce petit script.
Simplisme toi meme !

Hors ligne

#15 27-10-2010 22:40:27

Asmodée
Membre
Lieu : /dev/null
Distrib. : Squeeze
Inscription : 16-05-2010

Re : Lecture répertoire vidéo en boucle [Résolu]

C'est normal... while est suivi d'une condition qui est soit vraie, soit fausse... Je suis désolé de te le dire, mais ce que tu écris n'a pas beaucoup de sens... :S
En forme compacte, voici un exemple :

while true; do mplayer ./video/*; done

Après, avec les options qu'il faut comme -fs -idle -cache XXXX et autres (lis BIEN le manuel), tu devrais avoir EXACTEMENT ce que tu veux...

Deux choses :
1) Ce que j'ai écris n'est pas parfait : si tu supprimes des fichiers alors qu'ils sont lus, il faut éviter que mplayer plante (ça ne devrait pas poser de problème, mais bon...)
2) Mettre while à true fera qu'il ne s'arrêtera jamais. Si ce n'est pas un problème la plupart du temps, je te conseille de créer un "vrai" script bash pour pouvoir le tuer s'il faut. Si tu es bloqué en plein écran, il faut laisser échap enfoncé et appuyer sur ctrl+C


Cette méthode a un inconvénient majeur : c'est la demi seconde de blanc entre les vidéos... mplayer DOIT pouvoir empêcher ça, mais comme ça, je ne sais pas comment faire (il faudrait que je me tape le manuel). Mais bon... Même avec ta playlist tu aurais le même effet...

Donc,

while true; do mplayer ./video/*; done

On est loin de inotify ;p

Hors ligne

#16 27-10-2010 22:43:36

Asmodée
Membre
Lieu : /dev/null
Distrib. : Squeeze
Inscription : 16-05-2010

Re : Lecture répertoire vidéo en boucle [Résolu]

En fait, si tu ne manques pas de RAM (ce qui devrait être OK), tu n'auras AUCUN problème à supprimer ou ajouter des fichiers à la volée.

Hors ligne

#17 28-10-2010 10:10:40

gustave
Membre
Distrib. : Debian
Noyau : 2.6.26-2-686
(G)UI : Gnome
Inscription : 01-04-2009

Re : Lecture répertoire vidéo en boucle [Résolu]

Alors la elle est bonne, mais que ca marche parfaitement bien comme ca, j'en revient pas !
Merci, une bonne explication vaut mieux. c'est le probleme de l'etre humain, savoir s'expliquer, se faire comprendre est encore d'actualité, le langage meme de programation se doit etre universel. le php par exemple)le est bien le meme en rusk qu'en chinois.

Hors ligne

Pied de page des forums