Debmirror (Repository Spiegel erstellen)

dieses Script erstellt einen Spiegel von Debian und beinhaltet bullseye und bookworm

das Script versteht sich mit etwas Grundwissen fast von selbst, es kann leicht auf andere Spiegelserver oder Repository und Distribution angepasst werden

erforderlich
apt install debmirror gnupg xz-utils rsync

je nach Repository und Distribution müssen noch die GPG key installiert werden

je nach Spiegelserver können im Bereich “zusätzliche optionen” Verbindungsmöglichkeiten ausgesucht werden

am ende der Zeile einfach die passende Option anpassen
debmirror $DEB_MIRROR --host=$DEB_HOST --arch=$DEB_ARCH --dist=$DEB_DIST --root=$DEB_ROOT --section=$DEB_SECT $DEB_OPT

debmirror-debian.sh

#!/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=bullseye,bullseye-updates,bullseye-backports,bookworm,bookworm-updates,bookworm-backports

# 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

/etc/logrotate.d/debmirror-debian

/var/log/debmirror/_01_debian.org.log {
	yearly
	missingok
	nocompress
	notifempty
	rotate 10
	create 640 root adm
	}