thomas91
Goto Top

Probleme mit wget

Hey Administrator-Community,

ich habe ein Problem mit meinem WPAD-Sever. Dieser hat bis gestern mit einem Crontab unser Proxy.pac vom Rechenzentrum geholt.
"Crontab: */30 * * * * wget - O /var/www/proxy-pac http://proxypac.rz.intra/firma/proxy.pac;

Versuche ich nun manuel "wget - O /var/www/proxy-pac http://proxypac.rz.intra/firma/proxy.pac; bekomme ich folgende Meldung:
Resolving proxypac.rz.intra (proxypac.rz.intra)... IP
Connecting to proxypac.rz.intra (proxypac.rz.intra) IP... Connected.
HTTP request sent, awaiting response... 502 Host not found
Datum Uhrzeit ERROR 502: Host not found.

Der WPAD sitzt hinter einem Proxy, welcher in der proxy.pac enthalten ist. Da beim fehlschlagen des downloads eine 0kb große Datei ohne inhalt angelegt wird wurde bei uns das ganze Netzwerk (Server & Clients) lahm gelegt. Ich habe jetzt Provesorisch die Datei händisch geladen und auf den Server gespielt und einen systemlink von proxy1.pac -> wpad.dat erstellt.
Meine Fragen jetzt sind:
1. Wie bekomme ich meine Abfrage wieder zum laufen?
2. Wie verhindere ich das wget eine 0kb große Datei erstellt sondern nur die vorhandene Datei Überschreibt wenn sich der inhalt geändert hat?

Gruß Thomas

Content-ID: 240704

Url: https://administrator.de/contentid/240704

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

Lochkartenstanzer
Lochkartenstanzer 12.06.2014 aktualisiert um 11:15:07 Uhr
Goto Top
Zitat von @Thomas91:

Resolving proxypac.rz.intra (proxypac.rz.intra)... IP
Connecting to proxypac.rz.intra (proxypac.rz.intra) IP... Connected.
HTTP request sent, awaiting response... 502 Host not found
Datum Uhrzeit ERROR 502: Host not found.

Offensichtlich findet der proxy den server nicht. prüf mal den proxy selbst.

1. Wie bekomme ich meine Abfrage wieder zum laufen?

Den Fehler auf dem Proxy beheben

2. Wie verhindere ich das wget eine 0kb große Datei erstellt sondern nur die vorhandene Datei Überschreibt wenn sich
der inhalt geändert hat?

einfach in eine temporäreDatei speichern udn dann vergleichen ob man ddie ältere datei überschreiben will.

lks

PS: Sich selbst an den Haaren aus dem Sumpf ziehen funktioniert nur bei Münchhausen.
Thomas91
Thomas91 12.06.2014 aktualisiert um 11:54:26 Uhr
Goto Top
1. Der Proxy ist auch nicht für die Verbindung zum RZ zuständig sondern ins www. im Proxy.pac stehen die Ausnahmen, sodass die Verbindungen ins RZ direkt getätigt werden.
Lädt man das Proxy.pac mittels Browser von einem Client, so erscheint dieses nicht im Log des Proxy´s. Beim Linux Server ist dies aber der Fall.
EDIT: Wo kann man für wget Proxyausnahmen definieren?

2. einfach mehr Infos geben, damit man auch das Problem lösen kann

mfg
Thomas

PS: 5€ fürs Phrasenschwein
Gersen
Gersen 12.06.2014 um 12:33:25 Uhr
Goto Top
Hallo,

zu 2.

wget - O /tmp/proxy-pac http://proxypac.rz.intra/firma/proxy.pac && mv /tmp/proxy-pac /var/www/proxy-pac

holt die Datei ins temporäre Verzeichnis und verschiebt sie nur im Erfolgsfalle (Return-Code von WGET) nach /var/www.

Alternative wäre ein SHELL-Skript für den Cronjob. Dort könntest Du etwa mit

if [ -s /tmp/proxy-pac ]

abprüfen, ob die Dateigröße mindestens 1 Byte beträgt.

Gruß,
Gersen
Thomas91
Thomas91 13.06.2014 um 08:43:50 Uhr
Goto Top
Hey Gersen,

da ich mein erstes Shell Skript schreibe bin ich noch etwas ratlos face-smile
Kann ich im Shell Skript auch WGET nutzen?

Gruß Thomas
Lochkartenstanzer
Lochkartenstanzer 13.06.2014 um 08:51:55 Uhr
Goto Top
Zitat von @Thomas91:

Kann ich im Shell Skript auch WGET nutzen?

naütrlich. Warum soltle man das nicht können.

Wenn die Pfade richtig gesetzt sind, findet die shell das wget sogar slebst. face-smile

lks
Thomas91
Thomas91 13.06.2014 um 09:17:09 Uhr
Goto Top
Danke lks für deine schnelle Antwort.
Um aber nochmal zu Punkt eins zurück zu kommen:
Wo kann ich meinem Server für wget Proxyausnahmen definieren?
Lochkartenstanzer
Lochkartenstanzer 13.06.2014 um 09:23:11 Uhr
Goto Top
Zitat von @Thomas91:

Wo kann ich meinem Server für wget Proxyausnahmen definieren?

Ganz einfach:

Ruf mal wget --help auf. dan bekomst Du die Hilfeinformationen für wget. Da steht dann u.a. auch

       --no-proxy               Keinen Proxy verwenden

lks

PS. Anleitungen lesen ist nicht imemr verschwendete zeit. face-smile
Thomas91
Thomas91 13.06.2014 um 09:34:27 Uhr
Goto Top
Ich google und lese seit zwei Tagen und finde die Lösung nicht. Kann ich auch *.rz.intra* eintragen?
Wie kann ich bei wget --help nach oben kommen in der cmd?
Lochkartenstanzer
Lochkartenstanzer 13.06.2014 um 09:41:22 Uhr
Goto Top
Zitat von @Thomas91:

Ich google und lese seit zwei Tagen und finde die Lösung nicht. Kann ich auch *.rz.intra* eintragen?

Wieso? Du kannst natürlich in der GPO oder in den internetoptionen die Ausnahme eintragen. aber das gilt dann für alle, was auch sinnvoll wäre.

Wie kann ich bei wget --help nach oben kommen in der cmd?

wget --help | more

oder einfach den Puffer hochsetzen, so daß man dann scrollen kann.

lks
Thomas91
Thomas91 13.06.2014 um 09:48:30 Uhr
Goto Top
Zitat von @Lochkartenstanzer:

> Zitat von @Thomas91:
>
> Ich google und lese seit zwei Tagen und finde die Lösung nicht. Kann ich auch *.rz.intra* eintragen?

Wieso? Du kannst natürlich in der GPO oder in den internetoptionen die Ausnahme eintragen. aber das gilt dann für alle,
was auch sinnvoll wäre.

Die Außnahmen stehen ja in der proxy.pac -> wpad.dat (syslink) und per GPO ist eingestellt das die Browser automatisch nach der wpad.dat suchen
> Wie kann ich bei wget --help nach oben kommen in der cmd?

> wget --help | more
 

oder einfach den Puffer hochsetzen, so daß man dann scrollen kann.

Und wo kann ich den Puffer hochsetzen?
Lochkartenstanzer
Lochkartenstanzer 13.06.2014 um 09:51:07 Uhr
Goto Top
Zitat von @Thomas91:

> Zitat von @Lochkartenstanzer:
>
> oder einfach den Puffer hochsetzen, so daß man dann scrollen kann.
>
Und wo kann ich den Puffer hochsetzen?

In den eigenschaften des CMD-Fensters,

lks
Thomas91
Thomas91 13.06.2014 um 09:58:23 Uhr
Goto Top
Zitat von @Lochkartenstanzer:

> Zitat von @Thomas91:
>
> > Zitat von @Lochkartenstanzer:
> >
> > oder einfach den Puffer hochsetzen, so daß man dann scrollen kann.
> >
> Und wo kann ich den Puffer hochsetzen?

In den eigenschaften des CMD-Fensters,

lks

Ich hab doch nur die Konsole für den Server ohne GUI face-wink

wenn ich jetzt: wget --no-proxy - O /tmp/proxy-pac http://proxypac.rz.intra/firma/proxy.pac ausführe schlägt das ganze immer noch am Proxy auf. Es muss aber über den DNS-Server ans RZ direkt geleitet werden.
Gersen
Gersen 13.06.2014 um 10:37:54 Uhr
Goto Top
wget --help | less
oder
wget --help | more
vielleicht?
Thomas91
Thomas91 13.06.2014 um 11:05:52 Uhr
Goto Top
Zitat von @Gersen:

wget --help | less
oder
wget --help | more
vielleicht?

Hat funktioniert!
Gersen
Gersen 13.06.2014 aktualisiert um 11:31:10 Uhr
Goto Top
Schön. Dann versuch doch bitte mal, mittels
wget -d ...
den Kollegen zu einer ausführlicheren Ausgabe zu bewegen.
Thomas91
Thomas91 13.06.2014 um 12:13:33 Uhr
Goto Top
wget funktioniert wieder, es lag an einer kleinen Einstellung am Proxy...
Momentan ist mein Code:
# Variablen definition                                      #

tmpproxy=/tmp/tmp_proxy.pac
URL=http://proxypac.rz.intra/firma/proxy.pac

# Skript start                                              #
# Holen der proxy.pac mit wget
wget -O $tmpproxy $URL
exitcode=$?
echo Exitcode: $exitcode

# Kontrolle der tmpproxy-Datei
if [ $exitcode -gt 0 ]; then
        echo Fehler!
        exit 1
fi

Was ich noch machen möchte:
- if [$exitcode -gt 1]; then cp tmpproxy /var/www/proxy.pac
- erstellen einer Protokolldatei, welche bei erfolgreichem Kopieren von tmp in das Apache2 root Verzeichnis
Gersen
Lösung Gersen 13.06.2014, aktualisiert am 16.06.2014 um 13:45:41 Uhr
Goto Top
Hallo,

if [$exitcode -gt 1]; then cp tmpproxy /var/www/proxy.pac

Ich glaube nicht, dass Du das mit einem Exitcode > 1 machen solltest/möchtest face-wink

if [ $exitcode -eq 0 -a -s $tmpproxy ]
   then cp $tmpproxy /var/www/proxy.pac
      if [ $? -eq 0 ]
         then ... Deine Protokollsachen...
         else ... Fehler beim Kopieren ...
      fi
   else ... Fehler beim wget ...
fi

So grob...

Gruß,
Gersen
Thomas91
Thomas91 13.06.2014 um 15:11:32 Uhr
Goto Top
Zitat von @Gersen:

Hallo,

> if [$exitcode -gt 1]; then cp tmpproxy /var/www/proxy.pac

Ich glaube nicht, dass Du das mit einem Exitcode > 1 machen solltest/möchtest face-wink


ich dachte da an den rückgabewert von cp, oder gibt es hier keinen?
Gersen
Gersen 13.06.2014 um 15:32:54 Uhr
Goto Top
Doch, doch - die haben alle einen...

Aber der Rückkehr-Code von ordnungsgemäß verlaufenen Befehlen ist 0. Deine Zeile bedeutet: Wenn etwas schief gelaufen ist (Exitcode größer als 1), dann kopiere. Das scheint mir nicht gewollt zu sein, oder?
Thomas91
Thomas91 13.06.2014 um 15:56:53 Uhr
Goto Top
Zitat von @Gersen:

Doch, doch - die haben alle einen...

Aber der Rückkehr-Code von ordnungsgemäß verlaufenen Befehlen ist 0. Deine Zeile bedeutet: Wenn etwas schief
gelaufen ist (Exitcode größer als 1), dann kopiere. Das scheint mir nicht gewollt zu sein, oder?

Das ist richtig face-smile