Prüfen ob Datei im Internet vorhanden ...
Prüfen ob Datei im Internet vorhanden ...
Hallo,
ich suche nach einer Möglichkeit, in einem Script zu überprüfen, ob eine Datei auf einer Website vorhanden ist. Wenn dieses der Fall ist soll sie heruntergeladen werden. Wenn nicht, soll eine Meldung erfolgen.
Hat jemand eine Idee, wie man das macht?
z.B.: Datei im Internet: http://squeezeplug.de/test.tar.gz
if [Datei gibt es]; then
wget http://squeezeplug.de/test.tar.gz
Befehl 1
Befehl 2
...
else
echo "Datei nicht vorhanden"
fi
vielen Dank,
Gruß
Thomas
ich suche nach einer Möglichkeit, in einem Script zu überprüfen, ob eine Datei auf einer Website vorhanden ist. Wenn dieses der Fall ist soll sie heruntergeladen werden. Wenn nicht, soll eine Meldung erfolgen.
Hat jemand eine Idee, wie man das macht?
z.B.: Datei im Internet: http://squeezeplug.de/test.tar.gz
if [Datei gibt es]; then
wget http://squeezeplug.de/test.tar.gz
Befehl 1
Befehl 2
...
else
echo "Datei nicht vorhanden"
fi
vielen Dank,
Gruß
Thomas
Re: Prüfen ob Datei im Internet vorhanden ...
wget $DATEI liefert doch zurueck ob es geht oder nicht.truehl hat geschrieben: ich suche nach einer Möglichkeit, in einem Script zu überprüfen, ob eine Datei auf einer Website vorhanden ist. Wenn dieses der Fall ist soll sie heruntergeladen werden. Wenn nicht, soll eine Meldung erfolgen.
Hat jemand eine Idee, wie man das macht?
Du kannst also einfach mit dem Rueckgabewert von wget arbeiten.
Re: Prüfen ob Datei im Internet vorhanden ...
Genau das ist mein Problem. was ist hier der Rückgabewert?
root@squeezeplug:~# wget http://squeezeplug.de/wp-content/upload ... .31.tar.gz
--2010-12-10 22:48:46-- http://squeezeplug.de/wp-content/upload ... .31.tar.gz
Resolving squeezeplug.de... 88.198.8.66
Connecting to squeezeplug.de|88.198.8.66|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2010-12-10 22:48:46 ERROR 404: Not Found.
Vielen Dank,
Gruß
Thomas
root@squeezeplug:~# wget http://squeezeplug.de/wp-content/upload ... .31.tar.gz
--2010-12-10 22:48:46-- http://squeezeplug.de/wp-content/upload ... .31.tar.gz
Resolving squeezeplug.de... 88.198.8.66
Connecting to squeezeplug.de|88.198.8.66|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2010-12-10 22:48:46 ERROR 404: Not Found.
Vielen Dank,
Gruß
Thomas
Re: Prüfen ob Datei im Internet vorhanden ...
Wenn die Datei nicht da ist bekomme ich eine 4 kann das sein?
Gibt es auch eine Möglichkeit, die Existenz einer bestimmten Datei im Internet lediglich zu prüfen? Je nach Rückgabewert könnte ich dann Aktionen ausführen?!
Gibt es auch eine Möglichkeit, die Existenz einer bestimmten Datei im Internet lediglich zu prüfen? Je nach Rückgabewert könnte ich dann Aktionen ausführen?!
Re: Prüfen ob Datei im Internet vorhanden ...
Versuchs mal mit:
Roesti
Code: Alles auswählen
#!/bin/sh
FILE=http://squeezeplug.de/test.tar.gz
if [ -e "$FILE" ]
then wget http://squeezeplug.de/test.tar.gz
else echo "File not found"
fi
exit
Re: Prüfen ob Datei im Internet vorhanden ...
Um mal die manpage zu zitieren:Wenn die Datei nicht da ist bekomme ich eine 4 kann das sein?
Code: Alles auswählen
2.12 Exit Status
Wget may return one of several error codes if it encounters problems.
0 No problems occurred.
1 Generic error code.
2 Parse error--for instance, when parsing command-line options, the `.wgetrc' or `.netrc'...
3 File I/O error.
4 Network failure.
5 SSL verification failure.
6 Username/password authentication failure.
7 Protocol errors.
8 Server issued an error response.
With the exceptions of 0 and 1, the lower-numbered exit codes take precedence over higher-numbered ones, when
multiple types of errors are encountered.
In versions of Wget prior to 1.12, Wget's exit status tended to be unhelpful and inconsistent. Recursive downloads
would virtually always return 0 (success), regardless of any issues encountered, and non-recursive fetches only
returned the status corresponding to the most recently-attempted download.
Unix is user-friendly; it's just picky about who its friends are.
Re: Prüfen ob Datei im Internet vorhanden ...
ROFL! YMMD!Roesti hat geschrieben:Versuchs mal mit:
Code: Alles auswählen
#!/bin/sh FILE=http://squeezeplug.de/test.tar.gz if [ -e "$FILE" ]
Du kannst die Existenz einer Datei ueber HTTP (das meinst du doch mit ``im Internet'') zu pruefen musst du sie entweder ganz runterladen (HTTP GET) oder zumindest ihre Metainformation runterladen (HTTP HEAD). Der erste Fall ist einfacher, da den fast jedes Programm unterstuetzt (wget, w3m, etc). Der zweite Fall ist eher das was du suchst und den kannst du so erreichen:truehl hat geschrieben: Gibt es auch eine Möglichkeit, die Existenz einer bestimmten Datei im Internet lediglich zu prüfen? Je nach Rückgabewert könnte ich dann Aktionen ausführen?!
Code: Alles auswählen
wget --spider --force-html http://example.org/foo/bar.html
Oder liegt dein Problem in der weiteren Umsetzung des Problems mit der Shell? Dann sag das dazu. Hier nehmen wir meist grundlegende Shellkenntnisse an. Wir haben es gerne wenn wir sehen dass der Fragende sich selbst auch bemueht und Zeit zur Recherche und zum Ausprobieren aufwendet. Falls dies aber ueber deine Moeglichkeiten geht dann kannst du uns auch (mit Begruendung) bitten, dass wir dir was komplett Fertiges liefern. Da wir in diesem Forum auch nur nebenbei in unserer Freizeit aktiv sind wirst du verstehen dass wir nicht fuer jedes Problem Zeit investieren koennen um fertige Loesungen auf dem Tablett zu servieren. Man muss eben gut argumentieren, freundlich sein, und zeigen dass man selbst auch Zeit investiert wenn man wuenscht dass andere auch Zeit fuer einen investieren.
In diesem Sinne: Ich kann dir auch fertigen Code liefern wenn du mich ueberzeugst dass ich dafuer Zeit opfern will (und wenn ich genauer weiss was du willst). Ansonsten kannst du mit obigem Codeschnipsel und etwas Shellprogrammierkenntnissen (siehe auch andere Codeschnipsel in diesem Thead) den Rest auch selbst schaffen.
Use ed once in a while!