Re: [SSFR] Concernant la nouvelle liste de diffusion |
[ Thread Index |
Date Index
| More debianworld.org/shellscript-fr Archives
]
Re
Bruno Bonfils a écrit :
[couic]
>
>
> euh oui, je suis prêt, à une crontab ou deux près, et le backup mais qui
> va arriver (et d'ailleurs je ne suis pas contre un autre FTP ou poser un
> fichier de quelques MB)
Et pourquoi pas une boite `a lettre gratos ou on envoie un fichier
TAR/CPIO/DUMP/ZIP/.... saucisson'e en petite pieces jointes. Ces
gens l`a ont une politique de sauvegarde bien sup'erieure `a ce que
bon nombre d'entre nous peuvent offrir. Voil`a-t-y pas une bonne id'ee
de script pour se mettre en forme `a l'ap'eritif ?
Au passage, un tel produit existe pour winchose non ? Je veux dire un
truc qui fait prendre une BAL pour un disque...
Christophe
....
.....
........
................
.....................
#! /bin/sh
# utilisation :
# [TAILLEMAX=n[km]] [TEMPDIR=/un/rep/temp] maildecoupe dest-email [fichier...]
# split(1) les fichiers et les envoie par mail a l'adresse dest-email
#
# Variable d'environnement de configuration
: ${TAILLEMAX:=500k}
: ${TEMPDIR:=/tmp}
# besoin
# commande : mime-construct, split
# systeme de mail configur'e
#
# C'est bidon mais c,a ca evite d'oublier de mettre une adresse
bon_email_p() {
case "$1" in
*@*.*)
:
;;
*)
printf 'Mauvaise adresse email : --|%s|--\n' "$1" >&2
return 1
;;
esac
}
#
# INITIALISATION
#
IFS='
'
nomprog=${0##*/}
reptemp="$TEMPDIR/$nomprog.$$.$RANDOM"
mkdir "$reptemp"
trap 'rm -rf "$reptemp"' ERR
trap 'rm -rf "$reptemp"' EXIT
#
# principal PRINCIPAL Principal
#
set -e
email="$1"
bon_email_p "$1"
shift
for i
do
split -b $TAILLEMAX "$i" "$reptemp/${i##*/}."
(
cd "$reptemp"
k=1
for j in "${i##*/}."*
do
ks=$( printf %05d $k )
mime-construct --prelude '
Ceci est un message MIME. Veuillez changer de lecteur de courrier.
This is a mime message. Change your outdated mail reader
' \
--to "$email" \
--subject "$ks.${i}" \
--attachment "$ks.${i##*/}" \
--type application/octet-stream \
--file "$j"
k=$(( k + 1 ))
rm "$j"
#
# Toujours etre gentil avec un systeme de mail
#
sleep 1
done
)
done