#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
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!
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
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 ?
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