• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Gelöst] openSUSE-Repositories mirrorn

Xenon1

Newbie
Hallo,
ich würde in einem größeren Netzwerk gerne einen dezidierten Server für die Repositories aufstellen. Die Ubunturepos spiegelt er ja schon seit ein paar Wochen ohne Probleme, wodurch einiges an Traffic eingespart wurde. Da es sich aber um eine relativ langsame Internetleitung handelt, würde ich eben auch die wichtigsten openSUSErepos u.a. oss komplett spiegeln, ich möchte aber keinen Proxycache für die bereits heruntergeladenen Pakete.
Das Problem ist bei openSUSE scheidet ja debmirror aus. Wget hatte oss von 3 verschiedenen Server geladen und natürlich alles in 3facher Ausführung. Rsync ist für HTTP ungeeignet.
Ich suche eigentlich nur eine Möglichkeit den Inhalt eines HTTP-Server downzuloaden und in regelmäßigen Abständen (mit cronjobs) upzudaten. Gibt es da einfache Lösungen.

Danke für eure Lösungsansätze. :)
 

Appleonkel

Hacker
Es geht über rsync! Ein Auszug aus meinen Script
Code:
...
### 11.1 ###
SRC_SU111="rsync://ftp5.gwdg.de/pub/opensuse/distribution/11.1/repo/oss"
SRC_NONOSS111="rsync://ftp5.gwdg.de/pub/opensuse/distribution/11.1/repo/non-oss"
SRC_PM111="rsync://packman.mirrors.skynet.be/packman/suse/11.1/"

### Factory ###
SRC_FAC="rsync://ftp5.gwdg.de/pub/opensuse/distribution/SL-OSS-factory/inst-source/suse"
...
 
OP
X

Xenon1

Newbie
Danke. :)

Es scheint nun alles korrekt zu funktionieren. Rsync kopiert aber aus mir unfindlichen Gründen nur so um die 2GB, dann soll angeblich alles kopiert sein. Kann doch nicht sein, es müssten ja um die 20GB alleine in den OSS-Quellen sein? Ich habe es teilweise auch ohne Optionen probiert. In der Konsole laufen die Datein und Ordner durch, als wären sie da, was sie allerdings nicht sind. :/
Sogar bei leeren Verzeichnissen hat er den /oss/suse-Ordner angeblich schon reinkopiert.
 

Tooltime

Advanced Hacker
Warum ausgerechnet http? Warum unbedingt einen Brief als Vektorgrafik erstellen, wenn man ihn auch einfach als Text schreiben kann?

Darf es denn vielleicht ftp sein?
Da gab es doch einen Befehl speziell um einen Server per ftp zu spiegeln, genau mirror bzw. mirror-master. Der Vorteil der Kombination, relativ leicht zu konfigurieren und mirror-master schützt vor Mehrfachaufrufen durch cron, falls der Download mal länger dauern sollte.

Wie das geht? http://www.linux-club.de/viewtopic.php?f=3&t=92874&p=566008&hilit=ftp+mirror#p566008
 

Tooltime

Advanced Hacker
Da es gefallen hat, hier das Bonuspaket. Wie baue ich aus dem Repository eine Boot-CD für externe Datenquellen.
Code:
#! /bin/bash
#
PATH_DISTRIBUION=/daten/SuSE-Linux/11.0/oss
PATH_BOOTCD_IMAGE=openSUSE_bootcd_selfmade.iso
#
# Daten der bootcd
IMAGE_DATA=""
# root-Verzeichnis der CD
IMAGE_DATA="$IMAGE_DATA $PATH_DISTRIBUION/content"
# Komplette Verzeichnisse auf Boot-CD
IMAGE_DATA="$IMAGE_DATA $PATH_DISTRIBUION/boot"
IMAGE_DATA="$IMAGE_DATA $PATH_DISTRIBUION/docu"
IMAGE_DATA="$IMAGE_DATA $PATH_DISTRIBUION/media.1"
#
#
# 
IMAGE_BUILD_PATH=`mktemp -d -t my_boot_cd.XXXXXXXXXX`
#
# CD-Daten in temporären build-Pfad kopieren
cp -r $IMAGE_DATA $IMAGE_BUILD_PATH
#
# Eventuellen Schreibschutz von isolinux.bin aufheben.
chmod u+w $IMAGE_BUILD_PATH/boot/i386/loader/isolinux.bin
#
# Eigene Bootkonfiguration einfügen 
MY_BOOT_CONFIG=""
#  Die eigene Bootkonfiguration
MY_BOOT_CONFIG="/daten/SuSE-Linux/11.0/my_gfxboot.cfg"
[ -r $MY_BOOT_CONFIG ] && cp -f $MY_BOOT_CONFIG $IMAGE_BUILD_PATH/boot/i386/loader/gfxboot.cfg
#
# ISO-Image erstellen.
mkisofs -o $PATH_BOOTCD_IMAGE \
		-b boot/i386/loader/isolinux.bin -c boot.cat \
		-no-emul-boot -boot-load-size 4 -boot-info-table \
		$IMAGE_BUILD_PATH
#
#
# Temporäre Dateien löschen
rm -rf $IMAGE_BUILD_PATH
Bin mir nicht ganz sicher, kann sein das man die Paketet gfxboot und syslinux erst installieren muss. Die so erstelle Installations-CD kann 32-Bit und 64-Bit installieren und man hat die Möglichkeit den Pfad zur Installationsquelle gleich anzupassen. Basis ist natürlich das Orginal gfxboot.cfg.
Beispiel Repo auf USB-Disk (my_gfxboot.cfg):
  • install=hd
    install.hd.path=SuSE-Linux/11.0/oss
 
Oben