Question de script [Fermé]

Signaler
Messages postés
87
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
21 novembre 2019
-
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
-
Bonjour,
j'utilise un script pour envoyer des fichiers sur un blog posterous par courriel.
Voici le script :
for i in *; do echo "$i"|mutt -s "$i" -a "$i" post@posterous.com; done


J'aimerais si vous pouviez m'aider à effectuer deux choses.
J'aimerais qu'entre chaque envois de fichier il y est une minutes de temps
Ensuite, j'aimerais être capable d'envoyer par exemple les fichiers par groupe de 20 ou du nombre que je veux.
Merci pour votre aide

8 réponses

Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 330
hello
sleep 60 pour attendre 1 minute
les 20 fichiers, en 1 pièce-jointe ou en 20 pj ?
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 330
ce script envoie les fichiers par groupe de N pièces-jointes
$ ls
f01  f03  f05  f07  f09  f11  f13  f15	f17  f19  f21  f23  f25  f27  f29  f31	f33
f02  f04  f06  f08  f10  f12  f14  f16	f18  f20  f22  f24  f26  f28  f30  f32
$ 
$ ../f1
echo " f01 f02 f03 f04 f05" | mutt -s "fichiers 1 a 5"  -a f01 -a f02 -a f03 -a f04 -a f05 post@posterous.com
echo " f06 f07 f08 f09 f10" | mutt -s "fichiers 6 a 10"  -a f06 -a f07 -a f08 -a f09 -a f10 post@posterous.com
echo " f11 f12 f13 f14 f15" | mutt -s "fichiers 11 a 15"  -a f11 -a f12 -a f13 -a f14 -a f15 post@posterous.com
echo " f16 f17 f18 f19 f20" | mutt -s "fichiers 16 a 20"  -a f16 -a f17 -a f18 -a f19 -a f20 post@posterous.com
echo " f21 f22 f23 f24 f25" | mutt -s "fichiers 21 a 25"  -a f21 -a f22 -a f23 -a f24 -a f25 post@posterous.com
echo " f26 f27 f28 f29 f30" | mutt -s "fichiers 26 a 30"  -a f26 -a f27 -a f28 -a f29 -a f30 post@posterous.com
echo " f31 f32 f33" | mutt -s "fichiers 31 a 33"  -a f31 -a f32 -a f33 post@posterous.com
$ 
$ cat ../f1
#!/bin/bash

N=5
X=1 ; PJ="" ; LISTE="" ; FN=$X
for FILE in * ; do
        PJ="$PJ -a $FILE" ; LISTE="$LISTE $FILE" 
        if [ $((X++ % $N)) -eq 0 ] ; then
                echo "$LISTE" | mutt -s "fichiers $FN a $((X-1))" $PJ post@posterous.com
                PJ="" ; LISTE="" ; FN=$X
        fi
done
if [ -n "$PJ" ] ; then
        echo "$LISTE" | mutt -s "fichiers $FN a $((X-1))" $PJ post@posterous.com
fi
Messages postés
87
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
21 novembre 2019
6
Merci beaucoup pour le Sleep 60 c'est très gentil.
Dans le fond c'est d'envoyer 1 courriel avec 20 pièce jointes.
Ensuite répéter avec 20 autres fichiers.
Messages postés
87
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
21 novembre 2019
6
Merci pour ce script il est vraiment très bien.
Je l'ai exécuté avec la commande bash + nom du script.
Car c'est bizzare sur mon installation de pubuntu je ne trouve pas le répertoire /bin/bash...
est-ce qu'il faut que je le créé. Je suis débutant dans tout cela...
Merci beaucoup
Messages postés
87
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
21 novembre 2019
6
Deuxième question, est-ce que vous pensez qu'il serait possible d'affiner ce script pour qu'a lieu d'un nombre de fichier, il prenne un nombre de pièce jointe jusqu'à temps qu'il atteigne un maximum par exemple de 20 mb. Je pose seulement la question...
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 330
quel shell utilises-tu ? exécuter
echo $SHELL
quels shells existent ?, exécuter
ls -l /bin/*sh*
pour la taille, je ne sais pas si mutt compresse, alors on peut calculer la taille des fichiers plutot que des pieces-jointes
Messages postés
87
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
21 novembre 2019
6
C'est ce que je voulais dire, absolument
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 330
essaye ce script
#!/bin/sh

TAILLE=20971520
ls -l|awk -v taille=$TAILLE '/^-/ {if(tot+$5 > taille){tot=0;print fic;fic=""};tot+=$5;fic=fic " -a " $NF};END{print fic}'|while read F ; do
        LISTE=$(echo "$F"|sed -e 's/-a / /g')
        SUBJ=$(echo $LISTE|awk '{print $1,"à",$NF}')
        echo "fichiers: $LISTE" | mutt -s "fichiers $SUBJ" $F post@posterous.com
done