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:
Die Frage nun, wie weise ich mein Script an, auf die neuste Version zu prüfen?
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?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4289412160
Url: https://administrator.de/forum/bash-auf-neuste-version-pruefen-4289412160.html
Ausgedruckt am: 25.12.2024 um 20:12 Uhr
11 Kommentare
Neuester Kommentar
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.
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
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
Zitat von @Justman10000:
Nur, was, wenn dies nicht bereitgestellt wird?
Zitat von @4091525239:
...einer txt/json Datei via curl ausliest die die Entwickler bereitstellen...
...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.
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
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
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
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
Zitat von @Justman10000:
du könntest die Option --spider benutzen, …
Nope, schaut nur, ob Datei existiertHast du die Abfrage auf das Verzeichnis gesetzt - oder auf die Datei selber?
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:
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:
Und um auf zukünftige Versionen vorbereitet zu sein:
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
wget <url>/v1.6.{4..9}.zip
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
In wie weit du mit dieser Lösung den Fehlerfall (sprich nicht existente Dateien) abfedern musst, bleibt dir überlassen.
Grüße
TA
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.
Deswegen bringt hier die Gaskugelwischerei nüscht.
Hallo,
üblicherweise setzt der Serverbetreiber entsprechende Links (staging, stable usw.)
Gruß,
Jörg
üblicherweise setzt der Serverbetreiber entsprechende Links (staging, stable usw.)
Gruß,
Jörg