justman10000
Goto Top

Bash - Auf neuste Version prüfen

Hi, folgendes Problem:

Nehmen wir an, ich habe die v1.6.4.zip die mein Script über wget laden soll... Nun bringen die Entwickler jedoch eine neuere Version (v1.6.9) heraus! Mein Script lädt jedoch noch immer die v1.6.4, da hardcodet:

wget <url>/v1.6.4.zip

Die Frage nun, wie weise ich mein Script an, auf die neuste Version zu prüfen?

Content-Key: 4289412160

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

Printed on: April 26, 2024 at 07:04 o'clock

Mitglied: 4091525239
Solution 4091525239 Oct 15, 2022 updated at 05:40:20 (UTC)
Goto Top
Indem du die neue Version bspw. von der Webseite oder einer txt/json Datei via curl ausliest die die Entwickler bereitstellen und dann mit der letzten Version vergleichst welche du dir bspw. lokal in einer Textdatei abgelegt hast.
Member: Crusher79
Solution Crusher79 Oct 15, 2022 updated at 06:56:11 (UTC)
Goto Top
Hi,

Mitunter gibt es ja sowas wie "current". Ein Verweis auf die neueste.

Unter Windows nehm ich gern choco.

Da macht aber die Community die Arbeit und aktualisiert. Für andere Systeme gibt es eine ähnliche art der Verwaltung. Choco basiert auf PS.

Du kann dir ggf. dort ein paar Anregungen holen. Für Firefox u.ä. gibt es altnerative URLs, die immer die letzte Version laden. Ggf. auch bei dir der Fall. Da müsstest du die Quelle auseinander nehmen.

Choco ist schon relativ umfangreich. Lässt sich ggf. für andere OS adaptieren oder man nimmt gleich einen entsprechenden Abkömmling.

Unter Linux gab es mal Ansätze. Aber leider wohl keine 1:1 Umsetzung.

mfg Crusher
Member: Justman10000
Justman10000 Oct 15, 2022 updated at 11:51:55 (UTC)
Goto Top
Zitat von @4091525239:

...einer txt/json Datei via curl ausliest die die Entwickler bereitstellen...

Nur, was, wenn dies nicht bereitgestellt wird?
Mitglied: 4091525239
Solution 4091525239 Oct 15, 2022 updated at 13:19:39 (UTC)
Goto Top
Zitat von @Justman10000:

Zitat von @4091525239:

...einer txt/json Datei via curl ausliest die die Entwickler bereitstellen...

Nur, was, wenn dies nicht bereitgestellt wird?

Auf irgendeiner Webseite von der uns unbekannten Software wird es ja wohl stehen, das kannst du dann auch auslesen ...

Ggf. einfach mal die Software selbst nach Update suchen lassen und mit Wireshark/Fiddler schauen wo die Software die Infos zu Updates abruft, und diese Info dann für dich selbst nutzen.
Member: TwistedAir
TwistedAir Oct 15, 2022 at 13:25:02 (UTC)
Goto Top
Hallo,

du könntest die Option --spider benutzen, die dir eine Liste an Dateinamen/URLs zurückgibt, ohne Dateien herunterzuladen. Den Output müsstest du dann entsprechend „nachbearbeiten“ (z. B. mit „grep“), um deine Datei daraus zu extrahieren. Ein Ansatz wäre, wenn die Versionierung einem festgelegten Muster folgt. Oder du versuchst es anhand des Zeitstempels der Dateien.
Wenn du so die gewünschte Datei identifizierst hast, kann diese in einem zweiten Schritt heruntergeladen werden.

Gruß
TA
Member: cykes
cykes Oct 15, 2022 at 14:17:55 (UTC)
Goto Top
Zitat von @Justman10000:
Nur, was, wenn dies nicht bereitgestellt wird?
Dann ist Dein Skript auf demselben Informationsstand wie wir.

Wie erfährst Du denn von der neuen Version?
Dann musst Du diesen Vorgang in Deinem Skript bestmöglich abbilden ... oder uns mehr Informationen geben.

Gruß

cykes
Member: Justman10000
Justman10000 Oct 15, 2022 at 14:21:35 (UTC)
Goto Top
Zitat von @TwistedAir:

Hallo,

du könntest die Option --spider benutzen, die dir eine Liste an Dateinamen/URLs zurückgibt, ohne Dateien herunterzuladen. Den Output müsstest du dann entsprechend „nachbearbeiten“ (z. B. mit „grep“), um deine Datei daraus zu extrahieren. Ein Ansatz wäre, wenn die Versionierung einem festgelegten Muster folgt. Oder du versuchst es anhand des Zeitstempels der Dateien.
Wenn du so die gewünschte Datei identifizierst hast, kann diese in einem zweiten Schritt heruntergeladen werden.

Gruß
TA

Nope, schaut nur, ob Datei existiert
Member: TwistedAir
TwistedAir Oct 15, 2022 updated at 14:39:59 (UTC)
Goto Top
Zitat von @Justman10000:
du könntest die Option --spider benutzen, …
Nope, schaut nur, ob Datei existiert

Hast du die Abfrage auf das Verzeichnis gesetzt - oder auf die Datei selber?
Member: TwistedAir
Solution TwistedAir Oct 15, 2022 at 15:42:37 (UTC)
Goto Top
Ein anderer Ansatz (wenn das "laden" im Sinne von "herunterladen" und "prüfen" im Sinne von "ist existent" gemeint ist), ist eine quick-and-dirty-Lösung:
wget <url>/v1.6.{4..9}.zip
Das bewirkt, dass stumpf alle Versionen von 4 - 9 heruntergeladen werden.
Damit bei Wiederholung nicht erneut alle Dateien heruntergeladen werden, kann die Option --timestamping gesetzt werden; dann werden nur neuere Dateien (gemäß des Datei-Datums!) heruntergeladen:
wget  --timestamping <url>/v1.6.{4..9}.zip

Und um auf zukünftige Versionen vorbereitet zu sein:
wget  --timestamping <url>/v1.{6..7}.{1..9}.zip
Also alle Dateien mit Namen v1.6.1.zip - v1.6.9.zip und v1.7.1.zip - v1.7.9.zip

In wie weit du mit dieser Lösung den Fehlerfall (sprich nicht existente Dateien) abfedern musst, bleibt dir überlassen.

Grüße
TA
Mitglied: 4091525239
4091525239 Oct 15, 2022 updated at 15:47:03 (UTC)
Goto Top
Der Freitag dauert heute mal wieder länger ... bei der Masse an Infos die einem hier geliefert werden ... Dir sollte klar sein daß es keine Universallösung dafür geben kann, und das es immer abhängig vom Hersteller seiner Seite etc. ist ...
Deswegen bringt hier die Gaskugelwischerei nüscht.
Mitglied: 117471
117471 Oct 16, 2022 at 09:04:59 (UTC)
Goto Top
Hallo,

üblicherweise setzt der Serverbetreiber entsprechende Links (staging, stable usw.)

Gruß,
Jörg