Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
shell-script "wget" Error bei timeout

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Becks
Gast





BeitragVerfasst am: 21. März 2007 12:57   Titel: shell-script "wget" Error bei timeout

Hi all!

Ich habe ein kleines shellscript dass via cronjob regelmäßig durchläuft.
in dem Script werden ganz simpel mit wget einige Seiten aufgerufen, die dann lokal gespeichert werden.
Sieht beispielsweise so aus (URL geändert):

Code:

date=`date '+%F'`

#Homepage - Events today - workshops (NewsindexTeaser)
URL1="http://xxx.xxx.de/tools/export.py?fid=14&date=$date&days=1&event=conference&of=xml"
wget -O news1.xml "$URL1"


Funktioniert auch klasse. Er überschreibt bei jedem Durchlauf die file. Allerdings kam es in letzter Zeit leider vor, dass der Server auf dem die Seite aufgerufen wird down war.

wget versucht es dann standard mäßig 20mal

Beispiel output:
Code:
--11:10:11--  http://xxx.xxx.de/tools/export.py?fid=14&date=2007-03-21&days=365&event=conference&of=xml
  (try:12) => `news6.xml'
Connecting to xxx.xxx.de[xxx.xxx.5.58]:80... connected.
HTTP request sent, awaiting response...
Read error (Connection reset by peer) in headers.
Retrying.


Er bekommt 20x mal nen Read error und sagt dann "Giving up". Dann überschreibt er jedoch leider die file mit leerem Inhalt!

Ich suche eine unless-abfrage. Also irgendsowas am Anfang "unless output=ERROR"

so dass er das script nur durchläuft wenn der Server erreichbar ist. Wenn nicht soll er die files im alten Zustand lassen - besser alte Infos als gar keine Wink

Hoffe mir kann einer helfen!

Greeetz Basti
 

komsomolze



Anmeldungsdatum: 03.03.2006
Beiträge: 429

BeitragVerfasst am: 22. März 2007 8:56   Titel:

Hallo,

wenn Du die Option '-O news1.xml' weglässt, und stattdessen '-N (--timestamping)' benutzt?

Du könntest Dir auch mal das Skript update-pciids ansehen, da wird der Download in einen Test eingebunden:
Code:
...
   DL="wget -O $DEST.new $SRC"
...
if ! $DL ; then
   echo >&2 "update-pciids: download failed"
   rm -f $DEST.new
   exit 1
fi
...

_________________
mfg komsomolze
 
Benutzer-Profile anzeigen Private Nachricht senden

Becks
Gast





BeitragVerfasst am: 23. März 2007 15:28   Titel:

Habe es nun wie folgt gelöst:

Code:

#!/bin/sh

cd /afs/...

date=`date '+%F'`

#Connection check
URL_check="http://xxx.xxx.de/tools/export.py?fid=14&date=$date&days=1&event=conference&of=xml"
wget -t 1 -O check.xml "$URL_check" -o check.log


#Ausführen nur wenn kein 'ERROR' oder 'Giving up' in check.log gefunden wird
err=`grep -i 'Giving up' check.log | wc -l`
err2=`grep -i ERROR check.log | wc -l`


if [ $err == 0 ] && [ $err2 == 0 ]; then

   #Homepage - Events today - workshops (NewsindexTeaser)
   URL1="http://xxx.xxx.de/tools/export.py?fid=14&date=$date&days=1&event=conference&of=xml"
   wget -O news1.xml "$URL1"

   #Homepage - Events today - seminars (NewsindexTeaser)
   URL2="http://xxx.xxx.de/tools/export.py?fid=14&date=$date&days=1&event=simple_event&of=xml"
   wget -O news2.xml "$URL2"

   #Homepage - Upcoming Seminars (NewsindexTeaser2)
   URL3="http://xxx.xxx.de/tools/export.py?fid=14&date=$date&days=12&event=simple_event&of=xml"
   wget -O news3.xml "$URL3"

....

fi
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy