Question de script

Fermé
sprudhom Messages postés 87 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 21 novembre 2019 - Modifié par sprudhom le 12/04/2010 à 06:26
dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 - 16 avril 2010 à 13:36
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

A voir également:

8 réponses

dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 5 615
12 avril 2010 à 10:58
hello
sleep 60 pour attendre 1 minute
les 20 fichiers, en 1 pièce-jointe ou en 20 pj ?
2
dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 5 615
13 avril 2010 à 08:50
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
1
sprudhom Messages postés 87 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 21 novembre 2019 6
12 avril 2010 à 17:16
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.
0
sprudhom Messages postés 87 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 21 novembre 2019 6
14 avril 2010 à 17:20
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sprudhom Messages postés 87 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 21 novembre 2019 6
14 avril 2010 à 17:28
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...
0
dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 5 615
15 avril 2010 à 08:10
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
0
sprudhom Messages postés 87 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 21 novembre 2019 6
15 avril 2010 à 22:14
C'est ce que je voulais dire, absolument
0
dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 5 615
16 avril 2010 à 13:36
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
0