Gruesse! * Dirk Salva <[EMAIL PROTECTED]> schrieb am [19.09.05 21:03]: > On Mon, Sep 19, 2005 at 07:34:18PM +0200, Gerhard Brauer wrote:
> > Ich kann auch mein apt-dsl Skript anwerfen was mir für alle meine > > Rechner eine Download-Liste erstellt mit der ich dann zum Kumpel gehe, > > der mit DSL/Flat gesegnet ist. > > ? Posten, am besten mit Erklärung:-) Ist keine Magie und andere Beispiele wurden schon öfters auf der Liste gepostet. Voraussetzen muß ich allerdings, daß ich auf meinem Server apt-proxy installiert habe und die Clients sich von diesem die Pakete holen. Diese Konstellation dürften aber viele haben. Ich muß im Skript lediglich die Voraussetzung schaffen, das Downloads eben von den realen Servern geholt werden anstatt vom proxy. Ohne apt-proxy kann auf den Backend-Teil und auf den sed-Lauf verzichtet werden. So gehe ich vor: a) apt-dsl.sh liegt bei mir auf einem nfs-share in einem eigenen Verzeichniss. Die Clients haben diesen share gemeountet. Für jeden upzudatenden Rechner gehe ich als root per ssh auf diesen Rechner und führe das Skript dort aus. Es wird auf diesem PC jetzt ein apt-get dist-upgrade angestoßen was im Skript unbedingt mit no/Nein zu beantworten ist. Danach wird für diesen PC eine Datei uris.HOSTANME erstellt welche die updatefähigen Pakete enthält. Da die Download-URLs noch auf den apt-proxy zeigen werden diese durch die realen Server analog zu den Backends in der apt-proxy.conf ersetzt. b) merge.sh wird danach auf irgendeinem PC ausgeführt und erstellt aus den Listen der einzelnen PC eine einzige Download-Datei. Und es kümmert sich darum, das Pakete jeweils nur einmal in dieser Liste downgeloadet werden. Und es erstellt mir diverse Listen, die dann bei den DSL-Kumpels ausgeführt werden (Linux oder Win). Außerdem werden diese Listen nochmal gezippt um per Mail versendet werden zu können, c) Am DSL-rechner muß wget installiert sein. Bei Linux langt dann ein: sh wget-dsl.lst unter Windows das Starten von: wget-dsl.cmd d) Daheim importier ich dann mit apt-proxy-import die Debs in den Proxy und kann dann die gewünschten Updates vornehmen. Hier die Skripts: ----------------- apt-dsl.sh ----------- #!/bin/sh # Aendern: Adresse des apt-proxy APTP="http:\/\/192.168.1.1:9999" # Aendern: # Backends von apt-proxy zum Ersetzen # Hier die eigenen Backends aus apt-proxy.conf # eintragen BE_debian="$APTP\/debian" BE_marillat="$APTP\/marillat" BE_nonUS="$APTP\/non-US" BE_security="$APTP\/security" # Aendern: # Die richtigen Server zu den Backends # Diese ersetzen den Gegenpart vom apt-proxy SRV_debian="http:\/\/ftp.de.debian.org\/debian" SRV_marillat="ftp:\/\/ftp.nerim.net\/debian-marillat" SRV_nonUS="http:\/\/ftp.de.debian.org\/debian-non-US" SRV_security="http:\/\/security.debian.org" echo "---> Starte dist-upgrade zur Uebersicht" echo "Bitte mit no antworten!" echo "" apt-get dist-upgrade echo "" echo "---> Erstelle Download-datei fuer $HOSTNAME" # Ab hier reinstes Vodoo, alles nur geklaut... apt-get -qq --print-uris dist-upgrade > uris.$HOSTNAME # Aendern: # Hier werden die apt-proxy URLs durch die realen ersetzt. sed -e s/"'"//g \ -e s/$BE_debian/$SRV_debian/g \ -e s/$BE_marillat/$SRV_marillat/g \ -e s/$BE_nonUS/$SRV_nonUS/g \ -e s/$BE_security/$SRV_security/g \ < uris.$HOSTNAME > urisnew.$HOSTNAME # Hier koennen wget Parameter geaendert werden. # Achtung: Backticks (') bei awk #awk '{print "wget -nc -O " $2 " " $1}' < urisnew.$HOSTNAME > download.$HOSTNAME awk '{print "wget -O " $2 " " $1}' < urisnew.$HOSTNAME > download.$HOSTNAME rm uris.$HOSTNAME urisnew.$HOSTNAME echo "" echo "Ich habe fertig." exit 0 ------------------------------ merge.sh --------- #!/bin/sh # Sortiere Liste aller download-Dateien unique # und gebe diese Liste nach wget-dsl.lst aus # # gleichzeitig mit todos eine .cmd Datei im # DOS Format für Download von einem DOS-System sort -u download* -o wget-dsl.lst todos < wget-dsl.lst > wget-dsl.cmd # zusätzlich nochmal zippen gzip -c wget-dsl.lst > wget-dsl.lst.gz gzip -c wget-dsl.cmd > wget-dsl.cmd.gz exit 0 --------------------------------- > ciao, Dirk Gruß Gerhard -- MSCI = M$cro Soft Certificated Installer