Ce Forum passera en lecture seule en janvier 2020
Image
Merci de vous rendre sur https://community.jeedom.com maintenant pour vos prochains postes ;)

Script d'effacement du contenu d'un répertoire

Réservé à l'utilisation et la programmation de scripts dans JEEDOM
Répondre
fredfit
Timide
Messages : 92
Inscription : 06 mars 2018, 13:40

Script d'effacement du contenu d'un répertoire

Message par fredfit » 17 oct. 2019, 10:58

Bonjour à tous,

Je cherche à mettre en place un automatisme qui effacerait le contenu d'un répertoire dès que celui-ci dépasse une certaine capacité.
Est-ce que ceci doit passer par un script ? J'ai tenté par scénario mais je n'ai pas trouvé comment gérer cette notion, si même c'est possible.
Je ne connais rien en script et n'ai aucun talent de développeur. Si une solution existe, je suis preneur !
Merci

PS: le contexte fonctionnel est le suivant: j'utilise le plugin Motion et une webcam USB pour afficher dans mon design la surveillance vidéo en streaming d'une pièce. Le flux est enregistré en tant que fichier mpeg dans html/tmp/motion/un_répertoire_propre_à_Motion.
Je souhaite pouvoir y accéder si nécessaire mais je n'ai pas besoin de cumuler des jours et des jours de capture. D'autant que la taille du fichier augmente vite, ce qui m'a valu récemment un blocage complet de ma Smart par manque d'espace disque. Je voudrais donc que, en arrivant à environ 100Mo de données par exemple, l'automatisme se déclenche.

fredfit
Timide
Messages : 92
Inscription : 06 mars 2018, 13:40

Re: Script d'effacement du contenu d'un répertoire

Message par fredfit » 29 oct. 2019, 16:42

Pas de développeur pour me proposer une solution ?!!

Kyoshi
Timide
Messages : 444
Inscription : 04 mai 2018, 14:05

Re: Script d'effacement du contenu d'un répertoire

Message par Kyoshi » 29 oct. 2019, 18:05

Hello,
Avec le plugin script + des commandes Linux adaptées pour faire le ménage (que l’on trouve facilement sur Google).
Ou la mise en place d’un cron directement sur le système qui appelle un script.

fredfit
Timide
Messages : 92
Inscription : 06 mars 2018, 13:40

Re: Script d'effacement du contenu d'un répertoire

Message par fredfit » 04 nov. 2019, 08:55

Merci Kyoshi, mais comme je le précisais "Je ne connais rien en script et n'ai aucun talent de développeur".

Kyoshi
Timide
Messages : 444
Inscription : 04 mai 2018, 14:05

Re: Script d'effacement du contenu d'un répertoire

Message par Kyoshi » 04 nov. 2019, 12:23

Mais cela n'a rien à voir avec le développement.
Ce sont juste des commandes à passer.
Et les tutos ne manquent pas. Il suffit par exemple de saisir dans Google "linux suppression de fichiers par date".

geronimoo0
Timide
Messages : 88
Inscription : 06 mai 2019, 15:17

Re: Script d'effacement du contenu d'un répertoire

Message par geronimoo0 » 05 nov. 2019, 10:39

tu peux faire un script en bash en suivant un tuto sur le net, du genre
if taille > à capacité
then supprimer le contenu du répertoire /mon_rep/

ça va te faire une heure de recherche et compréhension, mais rien d'hyper compliqué :)
ensuite tu appelles ce script soit par un scénario, soit comme indiqué plus haut par une tâche cron.

fredfit
Timide
Messages : 92
Inscription : 06 mars 2018, 13:40

Re: Script d'effacement du contenu d'un répertoire

Message par fredfit » 07 nov. 2019, 11:14

Bon en fait vous m'aidez sans m'aider.
J'ai bien en tête le principe, ce qui me manque c'est la façon de le mettre en œuvre dans Jeedom.

Je pensais utiliser la ligne de commande suivante:

Code : Tout sélectionner

find html/tmp/motion/232 -size +100M -delete;
("232" est le nom du répertoire où se placent mes vidéos)

Maintenant j'en fais quoi ?

Ce code est inspiré de choses que j'ai lues sur:
https://www.nas-forum.com/forum/topic/4 ... e-x-jours/
Mais un NAS Synology a un planificateur de tâches qu'un Jeedom n'a pas (à part un CRON dans un scénario mais ça je sais faire)...

geronimoo0
Timide
Messages : 88
Inscription : 06 mai 2019, 15:17

Re: Script d'effacement du contenu d'un répertoire

Message par geronimoo0 » 07 nov. 2019, 11:50

fredfit a écrit :
07 nov. 2019, 11:14
Bon en fait vous m'aidez sans m'aider.
En fait on t'aide sans faire le taff à ta place, nuance.

Se que tu as trouvé semble pas mal, la commande find sous linux est assez facile à mettre en place.

Maintenant pour mettre en place un automatisme, on va déployer ta commande dans un démon (commande régulière) qu'on appelle cron

pour ça tu fais (en root) crontab -e (pour éditer la crontab journalier)

et tu vas rentrer une ligne du genre:
*/5 * * * * /ma_commande_find

-> pour la syntaxe, ce sont les heures / jours / minutes sur lesquels tu souhaites que la commande soit exécutée; plus d'infos ici:
https://www.linuxtricks.fr/wiki/cron-et ... -de-taches (partie guide de survie)

-> pour la commande tu as deux solutions. Sois tu appelles la commande directement (find html/tmp/motion/232 -size +100M -delete;) ou tu créés un exécutable qui va appeler cette commande (par exemple suppRep.sh qui contiendra la commande find...)

fredfit
Timide
Messages : 92
Inscription : 06 mars 2018, 13:40

Re: Script d'effacement du contenu d'un répertoire

Message par fredfit » 07 nov. 2019, 14:58

geronimoo0 a écrit :
07 nov. 2019, 11:50
En fait on t'aide sans faire le taff à ta place, nuance.
Je tiens à préciser que c'est bien dans cet esprit que je demandais de l'aide.
Seulement, ouvrir une porte quand tu ne sais pas où est la porte, pas facile. Autrement dit, il me manquait le début du commencement du démarrage du ... bref, par où commencer.

A force d'essayer, j'ai mis en place ce que je voulais faire.
Je constate quand même que ce sujet intéresse pas mal de monde: plus de 200 visites. Alors, c'est 200 visites de gens qui savent faire et qui me regardent galérer en ricanant et en ne donnant surtout pas la solution ? Ou c'est celles de ceux qui attendent qu'une solution soit publiée en se disant "tiens ça me serait utile ça" ?!! Pour ces derniers, je détaille ci-dessous comment j'ai fait. Les autres ont le droit de me descendre en flèche si ma méthode est bancale, mais je m'en fous, elle fonctionne ;)

Donc:

- plugin Script: créer un nouveau script. Ici je lui ai donné comme nom d'équipement "Suppression vidéos Motion". Ne rien mettre dans le CRON.
Dans les commandes, j'ai créé la commande "Effacement":
Image


- scénario: créer un nouveau scénario en mode programmé. En programmation, j'ai mis 0 8 * * * pour un déclenchement tous les jours à 8h.
En description du scénario, une simple action qui inclut un bloc Action:
Image

Et roule ma poule !

Merci geronimoo0 de m'avoir mis sur la voie.

geronimoo0
Timide
Messages : 88
Inscription : 06 mai 2019, 15:17

Re: Script d'effacement du contenu d'un répertoire

Message par geronimoo0 » 12 nov. 2019, 10:10

parfait si ça fonctionne, ça servira à d'autres ;)

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité