das Script versteht sich mit etwas Grundwissen fast von selbst, es kann leicht auf andere Spiegelserver angepasst werden
da ich keine passende Lösung für Logrotate gefunden habe wird bei jedem ausführen Logrotate manuell gestartet, so ist sichergestellt das für jeden start eine neue logdatei erstellt wird und die alte gesichert.
debmirror-debian.sh
Code: Alles auswählen
#!/bin/sh
logrotate --force /etc/logrotate.d/debmirror-debian
# anfang konfiguration debmirror
#
# gibt das log verzeichniss an
LOG0=/var/log/debmirror/_00_debmirror-single.log
LOG1=/var/log/debmirror/_01_debian.org.log
# gibt das lokale spiegelverzeichnis an
DEB_MIRROR=/var/www/debian/
# server von dem gespiegelt werden soll
DEB_HOST=ftp.de.debian.org
# verzeichnis des server von dem gespiegelt wird
DEB_ROOT=:debian/
# distribution (wheezy,sarge,sid ...)
DEB_DIST=jessie,jessie-backports,jessie-updates,jessie-proposed-updates,wheezy,wheezy-backports,wheezy-updates,wheezy-proposed-updates
# section die gespiegelt wird
DEB_SECT=main,contrib,non-free
# architektur
DEB_ARCH=i386,amd64,armhf
# zusätzliche optionen (man debmirror)
# --debug --progress --verbose --ignore-missing-release --ignore=debian-non-US --i18n --checksums
DEB_OPT="--method=rsync --passive --nosource --i18n --checksums --progress --diff=none"
DEB_OPT2="-v --method=ftp --passive --nosource --i18n --checksums --progress --diff=none"
DEB_OPT3="-v --method=http --passive --nosource --i18n --checksums --progress --diff=none"
DEB_OPT4="-v --method=http --passive --nosource --i18n --allow-dist-rename --checksums --progress --diff=none"
DEB_OPT5="-v --method=http --passive --nosource --i18n --ignore-small-errors --checksums --progress --diff=none"
# anzeigen der nachricht
MESG=on
(
if [ $MESG = on ]
then
echo ""
echo "--- `/bin/date` --- debmirror Aktualisierung..."
echo ""
fi
(
# Debian Spiegel
if [ $MESG = on ]
then
echo "`/bin/date` Debian Aktualisieren..."
fi
debmirror $DEB_MIRROR --host=$DEB_HOST --arch=$DEB_ARCH --dist=$DEB_DIST --root=$DEB_ROOT --section=$DEB_SECT $DEB_OPT
if [ $MESG = on ]
then
echo "`/bin/date` Debian Aktualisierung fertig."
echo ""
fi
) 2>&1 | tee $LOG1 >/dev/null
#
# ende konfiguration
if [ $MESG = on ]
then
echo "--- `/bin/date` --- debmirror Aktualisierung fertig."
echo ""
fi
) | tee $LOG0 >/dev/null 2>&1 &
exit
Code: Alles auswählen
/var/log/debmirror/_01_debian.org.log {
yearly
missingok
nocompress
notifempty
rotate 10
create 640 root adm
}