Parce que «Ça peut toujours servir»™ et que de toutes façons il y en a déjà des bouts qui sont dans le dépôt et que c'est chiant de git add -f.

Et puis bon, ça fait que 3Mo
This commit is contained in:
Vincent Le Gallic 2013-05-08 05:49:55 +02:00
parent 29f50c2ed9
commit 3bde363deb
299 changed files with 17466 additions and 0 deletions

View file

@ -0,0 +1,197 @@
#! /bin/sh
#
# Script de mise à jour automatique du FTP public du Cr@ns.
#
# Copyright (C) Augustin Parret-Fréaud
# Licence : GPLv2
#
# TODO : * creer un fichier de logs journalier (modifier la config de rsync
# devrait suffire)
# * intéger Chronomium, Dynebolic et Kaella (ie. trouver un
# serveur rsync qui le fasse ou utiliser autre chose (ftpmirror ?)
# Chemin du FTP
PATHFTP="/pubftp/august/"
# Distributions à gérer (nb : le nom du répertoire doit être
# le même que celui indiqué dans la liste ci-après).
# Debian, Fedora, Gentoo, Knoppix, Ubuntu
DISTRIB="Knoppix"
#DISTRIB="Debian Fedora Gentoo Knoppix Ubuntu"
# Variables diverses
LOGFILE="sync-ftp.log"
LOGRSYNC="/localhome/parret-freaud/log/rsync"
LOGTEMP="/localhome/parret-freaud/log/temp"
LOGMAIL="/localhome/parret-freaud/log/mail"
RSYNCOPT="--recursive --links --hard-links --times --verbose --delete-after"
ENTMAIL1="Liste des fichiers mis à jour sur le ftp public\n\
===============================================\n\n"
ENTMAIL3="-- \nMessage généré par sync-ftp.sh"
# Fichiers en écriture pour le groupe (ça ne fonctionne pas, à creuser ...)
cd $PATHFTP
umask 002
# Boucle principale
echo -e $ENTMAIL1 > $LOGMAIL
for DIST in $DISTRIB; do
case $DIST in
Debian)
# Adresse du miroir
MIRROR="rsync://ftp.de.debian.org/debian-cd"
# Architectures à exclure (à choisir parmi :
# alpha arm hppa i386 ia64 m68k mips mipsel powerpc s390 sparc)
ARCH_EXCLUDE="alpha arm hppa ia64 m68k mips mipsel s390"
# Fichiers/repertoires à exclude pour ces architectures
# de la forme "--exclude foo1$ARCH/ --exclude foo2$ARCH/ ... "
#ARCH_FR_EXCL="--exclude ${ARCH} "
# Exclusions supplémentaires
EXCLUDE="--exclude project --exclude bt-cd --exclude jigdo-cd \
--exclude jigdo-dvd --exclude bt-dvd --exclude source \
--exclude HEADER.html --exclude trace --exclude mkimage.log "
# A virer une fois les tests finis
for ARCH in $ARCH_EXCLUDE; do
EXCLUDE=$EXCLUDE"--exclude $ARCH "
done
PATHLOCAL=$PATHFTP"$DIST/"
ENTMAIL2="$DIST ($PATHLOCAL)\n======\n"
TAIL=15 # Pour le formattage du mail
;;
Fedora)
# Adresse du miroir
MIRROR="rsync://ftp.uvsq.fr/fedora/"
# Architectures à exclure (à choisir parmi :
# i386, x86-64)
ARCH_EXCLUDE=""
# Exclusions supplémentaires
EXCLUDE="--exclude development --exclude test --exclude updates \
--exclude source --exclude debug --exclude os --exclude SRPMS \
--exclude *-rescuecd.iso --exclude *-disc* "
for ARCH in $ARCH_EXCLUDE; do
EXCLUDE=$EXCLUDE"--exclude $ARCH "
done
PATHLOCAL=$PATHFTP"$DIST/"
ENTMAIL2="$DIST ($PATHLOCAL)\n======\n"
TAIL=3
;;
Gentoo)
# Adresse du miroir
MIRROR="rsync://ftp.belnet.be/gentoo/releases/"
# Architectures à exclure (à choisir parmi :
# alpha, amd64, hppa, ia64, ppc, ppc64, sparc, x86)
ARCH_EXCLUDE="alpha hppa ia64 ppc ppc64 sparc"
# Exclusions supplémentaires
EXCLUDE="--exclude historical --exclude mips --exclude stages \
--exclude packagecd --exclude snapshots --exclude livecd "
for ARCH in $ARCH_EXCLUDE; do
EXCLUDE=$EXCLUDE"--exclude $ARCH "
done
PATHLOCAL=$PATHFTP"$DIST/"
ENTMAIL2="$DIST ($PATHLOCAL)\n======\n"
TAIL=21
;;
Knoppix)
# Adresse du miroir
MIRROR="rsync://ftp.belnet.be/packages/knoppix/"
# Architectures à exclure (à choisir parmi :
# alpha, amd64, hppa, ia64, ppc, ppc64, sparc, x86)
ARCH_EXCLUDE=""
# Exclusions supplémentaires
EXCLUDE="--exclude contrib --exclude docs --exclude dvd \
--exclude knoppix-cover --exclude knoppix-customize \
--exclude knoppix-dvd --exclude packages-dvd.txt \
--exclude knoppix-vortrag-als2000 --exclude md5-old --exclude qemu-0.8.1 \
--exclude qemu-0.8.1-windows-README.txt --exclude *DE* "
for ARCH in $ARCH_EXCLUDE; do
EXCLUDE=$EXCLUDE"--exclude $ARCH "
done
PATHLOCAL=$PATHFTP"$DIST/"
ENTMAIL2="$DIST ($PATHLOCAL)\n=======\n"
TAIL=21
;;
Ubuntu)
# Adresse du miroir
MIRROR="rsync://ftp.oleane.net/ubuntu-cd/"
# Architectures à exclure (à choisir parmi :
# amd64 i386 powerpc sparc)
ARCH_EXCLUDE="amd64 powerpc sparc"
# Fichiers/repertoires à exclude pour ces architectures
# de la forme "--exclude foo1$ARCH/ --exclude foo2$ARCH/ ... "
#ARCH_FR_EXCL="--exclude ${ARCH} "
# Exclusions supplémentaires
EXCLUDE="--exclude cdicons --exclude edubuntu --exclude favicon.ico \
--exclude FOOTER.html --exclude HEADER.html --exclude jigit \
--exclude releases --exclude ubuntu-server --exclude .trace \
--exclude .htaccess --exclude .manifest "
# A virer une fois les tests finis
EXCLUDE=$EXCLUDE"--exclude kubuntu* --exclude xubuntu* --exclude ubuntu* "
for ARCH in $ARCH_EXCLUDE; do
EXCLUDE=$EXCLUDE"--exclude *-$ARCH.* "
done
PATHLOCAL=$PATHFTP"$DIST/"
ENTMAIL2="$DIST ($PATHLOCAL)\n======\n"
TAIL=8
;;
esac
umask 002
rsync $RSYNCOPT $EXCLUDE $MIRROR $PATHLOCAL > $LOGRSYNC
ERRC=$?
cat $LOGRSYNC
# En cas d'erreur, on notifie avec le code de sortie.
if [ $ERRC != 0 ]; then
echo "Erreur $ERRC"
echo -e $ENTMAIL2 >> $LOGMAIL
echo -e "Erreur, le processus rsync a retourné le code $ERRC.\n\n" >> $LOGMAIL
else
# Si une mise à jour a été effectuée, on notifie.
tail -n +$TAIL $LOGRSYNC > $LOGTEMP
# Sortie de test
cat $LOGTEMP
STATUS=$(cat $LOGTEMP | wc -l)
if (($STATUS > 2)); then
echo -e $ENTMAIL2 >> $LOGMAIL
cat $LOGTEMP >> $LOGMAIL
echo -e "\n" >> $LOGMAIL
fi
fi
#echo $STATUS
done
# Fonction d'envoi du mail de notification
mail_ftp() {
local FROM="From:FTP Public (Sila)<roots@crans.org>"
local SUBJECT="Notification de synchronisation du FTP"
local RECIPIENT="<roots@crans.org>"
local XMAILER="X-Mailer:Bash sync-ftp (by August')"
echo $1 | mail -a "$FROM" -a "$XMAILER" -s "$SUBJECT" $RECIPIENT < $1
}
# Envoi du mail de notification
LENGTH_MAIL=$(cat $LOGMAIL | wc -l)
if (($LENGTH_MAIL > 4)); then
echo -e $ENTMAIL3 >> $LOGMAIL
mail_ftp $LOGMAIL
fi
echo $LENGTH_MAIL
# Nettoyage des fichiers temporaires
rm -f $LOGRSYNC
rm -f $LOGTEMP
rm -f $LOGMAIL
exit 0