Anwendungs-Software und Apps 14.492 Themen, 73.651 Beiträge

WGET Befehlszeilenparameterfrage

Mario32 / 5 Antworten / Baumansicht Nickles

Hi

Bei wget ist es ja möglich durch Verwendung des timestamp parameters das herunterladen eines Serverfiles davon abhägig zu machen ob das File auf dem Remoteserver neuer ist als die lokale Version.

Ich möchte diese Funktion nutzen um ein sich regelmäßig aktualisierendes jpeg-bild einer Webcam von einem Server zu ziehen bei dem der Name der Datei immer gleich bleibt i. S. v. www.servername.de/bild.jpg

wget lädt mit -N die Bilddatei auch wirklich nur erneut wenn der Server das Bild aktualisiert hat. :-)
Aber es überschreibt dabei natürlich die schon lokal verhandene ältere Datei :-( Das genau soll es aber nicht.
Ich habe in der Hilfe nichts dazu gelesen wie ich das verhindern kann ;
sprich
ist es möglich wget zu sagen es soll an den zu speichernden lokalen jpeg namen beispielsweise eine fortlaufende Nummer oder besser noch die Serverzeit des Originals anhängen?
Wenn ja, wie lautet der Parameter und wie müßte dann eine entsprechende batchzeile/datei in "DOSbox" aussehen um den server automatisch wiederkehrend auf aktualisierte Version zu checken?

bei Antwort benachrichtigen
peter1960 Mario32 „WGET Befehlszeilenparameterfrage“
Optionen

Bei Linux weiß ich auch nicht wie das geht.
Für Windows gibt es da aber afaik etwas.

http://www.supervisioncam.de/index_ger.html

bei Antwort benachrichtigen
twmike Mario32 „WGET Befehlszeilenparameterfrage“
Optionen

hallo,
auszug aus »man wget«

Download Options


--bind-address=ADDRESS
When making client TCP/IP connections, "bind()" to ADDRESS on the
local machine. ADDRESS may be specified as a hostname or IP
address. This option can be useful if your machine is bound to
multiple IPs.

-t number
--tries=number
Set number of retries to number. Specify 0 or inf for infinite
retrying. The default is to retry 20 times, with the exception of
fatal errors like ``connection refused'' or ``not found'' (404),
which are not retried.

-O file
--output-document=file
The documents will not be written to the appropriate files, but all
will be concatenated together and written to file. If file already
exists, it will be overwritten. If the file is -, the documents
will be written to standard output. Including this option automat-
ically sets the number of tries to 1. Note that when --output-docu-
ment is specified, --convert-links is ignored.

-nc
--no-clobber
If a file is downloaded more than once in the same directory,
Wget's behavior depends on a few options, including -nc. In cer-
tain cases, the local file will be clobbered, or overwritten, upon
repeated download. In other cases it will be preserved.

When running Wget without -N, -nc, or -r, downloading the same file
in the same directory will result in the original copy of file
being preserved and the second copy being named file.1. If that
file is downloaded yet again, the third copy will be named file.2,
and so on. When -nc is specified, this behavior is suppressed, and
Wget will refuse to download newer copies of file. Therefore,
``"no-clobber"'' is actually a misnomer in this mode---it's not
clobbering that's prevented (as the numeric suffixes were already
preventing clobbering), but rather the multiple version saving
that's prevented.

When running Wget with -r, but without -N or -nc, re-downloading a
file will result in the new copy simply overwriting the old.
Adding -nc will prevent this behavior, instead causing the original
version to be preserved and any newer copies on the server to be
ignored.

When running Wget with -N, with or without -r, the decision as to
whether or not to download a newer copy of a file depends on the
local and remote timestamp and size of the file. -nc may not be
specified at the same time as -N.
----------------------------------------------
mfg
twmike

bei Antwort benachrichtigen
Mario32 twmike „hallo, auszug aus man wget Download Options --bind-address ADDRESS When making...“
Optionen

hallo twmike

Bin wohl schon zu alt (zu schlechte englischkenntnisse?!) ich kriegs nicht hin.

Hatte die man page auch gelesen. und auch mal mit der -nc option gespielt. aber entweder versteh ich es nur nicht richtig oder bin wirklich zu blöd!!

Es will einfach nicht gehen.
entweder habe ich keine aktualisierung/sprich kein neuladen oder wenn die remote datei aktualisiert wurde krieg ich die neue aber ebend nciht mit erhöhung der laufenden nummer sondern überschreiben der einen lokal verhandenen datei.

BTW: ich nutze wget hier unter cmd fenster in MS-XP. Das muß doch machbar sein mit einer einfachen batchfunktion in regelmäßigen abständen :-(

bei Antwort benachrichtigen
twmike Mario32 „hallo twmike Bin wohl schon zu alt zu schlechte englischkenntnisse?! ich kriegs...“
Optionen

ok, unter w2k und xp werden die batch-dateien auch als cmd dateien ausgezeichnet.
die merkmale sind so glaube ich fast identisch,schlussendlich könnte man diese cmd's mit dem taskplaner verknüpfen de dann regelmäßig die aufträge ausführt.

http://www.bb-sys.de/bbref.htm
http://www.winhelpline.info/daten/dos/
http://www.wer-weiss-was.de/faq1119/entry419.html
sogar bei wikipedia gibts was
http://de.wikibooks.org/wiki/Batch-Programmierung:_Programmierungs_Hilfen
http://www.admini.de/batch-infos.htm

so ich denke das reicht erstmal zum lernen
google sei dank..

bei Antwort benachrichtigen
Mario32 twmike „ok, unter w2k und xp werden die batch-dateien auch als cmd dateien...“
Optionen

Hi twmike, erst mal danke das du dir nochmal die Mühe machtest.

Mein Problem ist dennoch vermutlich weniger das Schreiben der Batchdatei an sich, sondern eher das downloadverhalten von wget:

Er soll das Serverfile erneut runterladen aber nur wenn es sich inhaltlich verändert hat im Vergleich zu der vorher schon gespeicherten Version. Aber wenn diese Bedingung erfüllt ist soll er die schon verhandene Namens(aber nun nicht mehr inhalts)gleiche Version nicht überschreiben.
---

Wenn ich wget ohne jeden parameter nur mit dem URL der Bilddatei aufrufe speichert er mit fortlaufender Nummer bei jedem Aufruf.
Dies ist eigentlich das was ich will (eindeutige lokale Dateinamen!) aber es werden dabei, je nach Aufrufintervall vs. Serveraktualisierungsfrequenz, Inhaltlichgleiche Bilddateien gespeichert. Dies soll aus speicherplatz/bandbreiten Gründen aber möglichst nicht passieren!

Mein gedanklicher Ansatz war nun der, zu sagen ich nutze -N um festzustellen ob Veränderung stattgefunden hat und lade nur dann runter. Problem dabei ist aber das bei -N verwendung keine Rücksicht auf schon verhandenem Dateinamen genommen wird. -nc und -N lassen sich so wie ich es bisher verstanden habe nicht kombinieren:
"Can't timestamp and not clobber old files at the same time."

Vieleicht bin ich aber auch nur blöd eine der Aufgabenstellung angemessene Parameterfolge zu sehen. Daher ja auch die entsprechende Fragestellung am 12.8.

bei Antwort benachrichtigen