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 24/04/2020, à 20:46

kogool

Possibilité d'optimiser un script ?

Bonjour @ tous,
jaimerais savoir si il ny a pas moyen d'optimiser ce script qui fonctionne mais me renvoie quand même la sortie du "find" à l'ecran.
il met 47 sec pour se clore (2 To à scanner).

#!/bin/sh

# Controle si des fichiers sur Gandal on été ajoutés!
if find /mnt/GandalVideos/ -regex '.*\(\.mp4\|\.mkv\|\.avi\)' -type f -mtime -1

# Execute le script MailNewsLetter.sh pour informer les Membres.
   then ./MailNewsLetter.sh

# Rien à été trouvés aucun mail ne sera envoyé aux membres, seulement au modo.
   else echo "Aucun Mail pour les Membres se soir" | mail -s "Aucun nouveau contenu à été ajouté sur Gandal aujourd'hui" XXXXX@hotmail.com
fi

Merci d'avance smile

Dernière modification par kogool (Le 24/04/2020, à 20:47)


Raspberry Pi2 Raspbian Buster

Hors ligne

#2 Le 24/04/2020, à 21:03

kamaris

Re : Possibilité d'optimiser un script ?

Comment ça il fonctionne ?
find renverra 0 qu'il trouve des fichiers ou non, donc le if ne contrôle pas « si des fichiers sur Gandal on été ajoutés ».
Tu peux mettre

if test -n "$(find /mnt/GandalVideos/ -regex '.*\(\.mp4\|\.mkv\|\.avi\)' -type f -mtime -1)"; then …

qui fera bien le contrôle que tu souhaites, et règlera la question de l'affichage.

Hors ligne

#3 Le 24/04/2020, à 21:11

marcus68

Re : Possibilité d'optimiser un script ?

il met 47 sec pour se clore (2 To à scanner).

Le temps d’exécution de ton script semble plutôt dépendre du nombre de fichier que de leur taille.

Le script étant déjà très simple, je pense que si tu veux améliorer le temps d'éxecution de façon non négligeable, il faudra penser à mettre les fichiers sur un support de stockage plus rapide.

EDIT : ou peut-être un système de fichier plus véloce

Dernière modification par marcus68 (Le 24/04/2020, à 21:12)

Hors ligne

#4 Le 24/04/2020, à 21:13

kamaris

Re : Possibilité d'optimiser un script ?

Pour optimiser, tu peux aussi faire ça :

if test -n "$(find /mnt/GandalVideos/ -regex '.*\(\.mp4\|\.mkv\|\.avi\)' -type f -mtime -1 -print -quit)"; then …

Ça fera quitter find dès le premier fichier trouvé (après l'avoir affiché), mais seulement s'il en trouve, évidemment.
Sinon, il faudra bien qu'il scanne tout pour savoir…

Dernière modification par kamaris (Le 24/04/2020, à 21:14)

Hors ligne

#5 Le 24/04/2020, à 21:22

kogool

Re : Possibilité d'optimiser un script ?

Super ! sa roule perfect!
et j'étais sérieux quand je disais que ça fonctionne!   tongue
En gros je suis parti d'un morceau de script que j'utilisais pour des backup.

if [ -f "/mnt/GormanBKP/Wiki.BKP-$(date +"%Y-%m-%d").zip" ]
then echo "Backup Wiki Allready Exist"

Merci encore!! Kamaris  cool


Raspberry Pi2 Raspbian Buster

Hors ligne

#6 Le 24/04/2020, à 21:26

Watael

Re : Possibilité d'optimiser un script ?

ce n'est pas parce que le script n'échoue pas qu'il fonctionne.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#7 Le 24/04/2020, à 21:31

kogool

Re : Possibilité d'optimiser un script ?

marcus68 a écrit :

il met 47 sec pour se clore (2 To à scanner).

Le temps d’exécution de ton script semble plutôt dépendre du nombre de fichier que de leur taille.

Le script étant déjà très simple, je pense que si tu veux améliorer le temps d'éxecution de façon non négligeable, il faudra penser à mettre les fichiers sur un support de stockage plus rapide.

EDIT : ou peut-être un système de fichier plus véloce

C'est deja le cas sur un NAS PX4-400R Raid 5 sur 4 disques en EXT4 bonding eth1&2 / Lan au Giga ( mon RPI scan 3275 files sur le NAS en montage NFS)


Raspberry Pi2 Raspbian Buster

Hors ligne

#8 Le 24/04/2020, à 22:03

Watael

Re : Possibilité d'optimiser un script ?

il y a surement quelque chose de plus efficace à faire avec un service systemd et inotifywait

EDIT:
il semblerait qu'il n'y ait même pas besoin de inotifywait, en utilisant systemd et une unité path.
lire man systemd.path

Dernière modification par Watael (Le 29/04/2020, à 05:09)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne