wiki:tipps_und_tricks:repository_rsync

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
wiki:tipps_und_tricks:repository_rsync [2013/06/26 22:42] – angelegt wikiadminwiki:tipps_und_tricks:repository_rsync [2015/04/04 16:54] (aktuell) – [rsync] wikiadmin
Zeile 1: Zeile 1:
-rsync -av --delete-after ftp5.gwdg.de::pub/opensuse.new/distribution/openSUSE-stable/repo/oss/ openSUSE/ 
  
 +Wie mache ich mir ein Lokales openSUSE-Repo
  
 +====== rsync ======
 +
 +<file>rsync -av --delete-after ftp5.gwdg.de::pub/opensuse.new/distribution/openSUSE-stable/repo/oss/ openSUSE/ </file>
 +
 +====== FTP ======
 +
 +Da nicht alle Firewalls rsync durchlassen bzw. nicht jeder Mirror rsync anbietet, habe ich mich auf die Suche nach Alternativen gmacht
 +
 +===== Methode 1 =====
 +
 +Ein Skript wurde entwickelt
 +<file bash sync-updaterepo.sh>
 +
 +#!/bin/bash
 +
 +updateurl="http://download.opensuse.org/update/12.3/"
 +repodir="/srv/ftp/repo_updates/"
 +architectures="i586 i686 noarch repodata x86_64"
 +logfile="/var/log/copyrep.log"
 +datum=`date +%Y.%m.%d\ %H:%M:%S`
 +
 +echo $* | grep -iq -e "--verbose"
 +
 +if [ "$?" = "0" ]
 +then
 +        verbose=on
 +        echo "verbose = on"
 +else
 +        verbose=off
 +        echo "verbose = off"
 +fi
 +
 +#verbose=on
 +
 +
 +logging (){
 +
 +case $1 in
 +        "ok")
 +                if [ "$verbose" = "on" ]
 +                then
 +                        echo "`date +%Y.%m.%d\ %H:%M:%S` [  OK  ] $2" >> $logfile
 +                fi
 +                ;;
 +        "fail")
 +                echo "`date +%Y.%m.%d\ %H:%M:%S` [ FAIL ] $2" >> $logfile
 +                ;;
 +        "load")
 +                echo "`date +%Y.%m.%d\ %H:%M:%S` [ LOAD ] $2" >> $logfile
 +                ;;
 +        *)
 +                echo "`date +%Y.%m.%d\ %H:%M:%S` $1" >> $logfile
 +esac
 +
 +fehlerauswertung(){
 +        if [ ! $? = 0 ]
 +        then
 +                logging "$1" "$2"
 +        fi
 +        }
 +
 +if [ ! -e $logfile ]
 +then
 +        touch $logfile
 +fi
 +
 +#Da die Metadaten des Repos bei jeder Änderung neu aufgebaut wird, löschen wir das Verzeichnis repodata
 +rm -r $repodir/repodata
 +
 +logging "starting Repocopy"
 +echo -e "Generiere Verzeichnisstruktur"
 +
 +for i in $architectures
 +do
 +        mkdir -p $repodir/$i > /dev/null 2>&1
 +done
 +
 +
 +for arch in $architectures
 +do
 +
 +        echo -e "Lade Pakete für \"$arch\" herunter"
 +        logging "begin $arch"
 +        cd /$repodir/$arch
 +
 +        w3m -dump $updateurl/$arch/ | tr -s ' ' ' ' | grep "Details" | cut -d"]" -f2 | cut -d" " -f2 > liste.txt
 +
 +        for paket in `cat liste.txt`
 +        do
 +                if [ ! -e $paket ]
 +                then
 +                        echo -e "\t[ load ]Lade Paket $paket herunter"
 +                        logging "load" "Lade Paket $paket herunter"
 +
 +                        wget -q $updateurl/$arch/$paket
 +                        fehlerauswertung "fail" "Paket $paket wurde nicht geladen"
 +
 +                elif [ ! -e $paket.md5 ]
 +                then
 +                        wget -q $updateurl/$arch/$paket.md5
 +                        fehlerauswertung "fail" "MD5 Summe für Paket $paket wurde nicht geladen"
 +
 +                        if [ -e $paket.md5 ]
 +                        then
 +                                md5sum -c $paket.md5 >> hashwerte_$arch.txt
 +                                fehlerauswertung "fail" "MD5 von $paket falsch"
 +                        fi
 +                else
 +                        echo -e "\t[  OK  ] Paket \"$paket\" existiert schon"
 +                        logging "ok" "Paket $paket bereits vorhanden"
 +                fi
 +        done
 +
 +        rm liste.txt
 +        logging "end $arch"
 +done
 +logging "End Copy Repo"
 +
 +
 +</file>
 +
 +
 +===== Methode 2 =====
 +
 +Es gibt ein Paket mirror, dass ein paar Perl-Scripte zur Spiegelung enthält
 +
 +
 +[[http://www.linux-club.de/viewtopic.php?f=3&t=92874&p=566008&hilit=ftp+mirror#p566008]]
  
  
 ====== Quelle ====== ====== Quelle ======
   *[[http://vavai.net/2008/10/making-a-local-copy-of-opensuse-repository-mirror-server/]]   *[[http://vavai.net/2008/10/making-a-local-copy-of-opensuse-repository-mirror-server/]]
  • wiki/tipps_und_tricks/repository_rsync.1372279347.txt.gz
  • Zuletzt geändert: 2013/06/26 22:42
  • von wikiadmin