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-ID: 4289412160

Url: https://administrator.de/forum/bash-auf-neuste-version-pruefen-4289412160.html

Ausgedruckt am: 25.12.2024 um 20:12 Uhr

4091525239
Lösung 4091525239 15.10.2022 aktualisiert um 07:40:20 Uhr
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.
Crusher79
Lösung Crusher79 15.10.2022 aktualisiert um 08:56:11 Uhr
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
Justman10000
Justman10000 15.10.2022 aktualisiert um 13:51:55 Uhr
Goto Top
Zitat von @4091525239:

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

Nur, was, wenn dies nicht bereitgestellt wird?
4091525239
Lösung 4091525239 15.10.2022 aktualisiert um 15:19:39 Uhr
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.
TwistedAir
TwistedAir 15.10.2022 um 15:25:02 Uhr
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
cykes
cykes 15.10.2022 um 16:17:55 Uhr
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
Justman10000
Justman10000 15.10.2022 um 16:21:35 Uhr
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
TwistedAir
TwistedAir 15.10.2022 aktualisiert um 16:39:59 Uhr
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?
TwistedAir
Lösung TwistedAir 15.10.2022 um 17:42:37 Uhr
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
4091525239
4091525239 15.10.2022 aktualisiert um 17:47:03 Uhr
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.
117471
117471 16.10.2022 um 11:04:59 Uhr
Goto Top
Hallo,

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

Gruß,
Jörg