Nickname
Passwort | vergessen?

179 anonyme User

1 angemeldetes Mitglied


jojo0411
77156 Mitglieder freuen sich auf Dich!
Top-Aktivitäten
Sehen Sie hier, wer zu den aktivsten Mitgliedern der aktuellen Woche zählt:
In den Bereich Batch & Shell wechseln ..

Automatisch eine bestimmte Software aus dem Web ziehen

Mitglied: TimoBeil
Geschrieben von TimoBeil (Level 5 - IT-Experte)
Erstellt am 26.04.2011, um 13:52:20 Uhr, Permanent-ID: 165174
Dieser Beitrag wurde bisher 7049 mal aufgerufen und gilt als gelöst.
40 von 42 Mitgliedern fanden diese Anleitung hilfreich.
Hilfreich+38 sehr hilfreichDruckenBeobachten
Ich habe lange gegrübelt, ob ich diesen Tipp / Anleitung der Allgemeinheit zur Verfügung stelle oder nicht.
Tatsächlich kann man(n) die Tippgeber, die allen anderen die Arbeit abnehmen leider an einer Hand abzählen.

Wenn man(n) sich dann die exmplarisch z.B Tuts vom Meister Biber anschaut - kommt man im Idealfall auf 5 von 6 Mitgliedern fanden diese Anleitung hilfreich..
Da denkt man sich doch Perlen vor die undankbare Masse gestreut - denn die meisten der wirklich mit viel Hirn und Zeit geschriebenen Tuts kommen im Idealfall auf 5-6 hilfreiche Bewertungen. (sind sehr wahrscheinlich immer die gleichen 5-6).
Diese Zeilen sind bitte als Aufruf zu verstehen, dass sich hier wieder mehrere Autoren die Zeit nehmen, Ihr Wissen Kniffe und Tricks zu schreiben und nicht etwa, diese "Anleitung" - die in meinen Augen nur ein "Besserer" Tipp ist - über den grünen Klee zu loben.

Lange Rede, kurzer Sinn - wenn das so weitergeht, dann das wird für längere Zeit meine letzte Anleitung - das wissen, wie man soweit kommt - fällt ja auch nicht direkt vor meine Füsse, da steckt einiges an Zeit drin.
Als Beispiel - sinngemäß gilt die Anleitung für jede im Internet beziehbare Software - nehme ich hier die MSI Version von Firefox, die uns dankenswerterweise Frontmotion liefert.

  • Mittlerweile gibt es viele sich selbstaktualiserende Software.
  • Aber nicht immer benutzt die der Admin, der das Netz wartet
  • Nicht immer schafft er es sich bei denüblichen Verdächtigen Quellen zu informieren
  • Man will z.B seine Windows PE Pakete immer aktuell halten (hier war vor Jahren mal der Ansatz für mich, das Script zu schreiben)
  • usw. usf.

Was brauche Ich:

  • Eine Quelle im Web, wo die Software gefunden werden kann.
wget
die Info ob und wenn welcher Proxy benötigt wird.

  • Einen Rechner, der regelmäßig eingeschaltet ist und einen geplanten Task "abkann"
  • Das wissen, dass man:
(wenn das Script viele einsetzen) mit so einem Script, die Downloadserver der Betreiber ganz schön strapazieren kann und es daher nicht jeden Tag laufen lassen sollte.
Daher zwecks einfacherer Wartung werden auch temporäre Dateien erzeugt, die man nach dem Lauf noch ansehen kann, um Fehler leichter zu finden.
weil man sich fremder Quellen bedient, dieses Script nicht einmal zusammenbraten und vergessen sollte, denn ändert der Betreiber seine Webstruktur - fällt das Script auf die Nase. In der hier aktualisierten Version habe ich diesen Punkt so gut es geht berücksichtigt.
Das Script / die Scripte laufen bei mir seit einigen Jahren und nicht immer schaffen es alle Verbesserungen, die ich für ein anderes Produkt erdacht / benötigt habe in alle anderen Varianten.
Da der Grund dieses Script hier zu veröffentlichen, ja nach der Frage, wie geht es mit Flash und ich Hier diese Quellen nicht nennen darf - nahm ich das Frontmotionfirefoxscript.

Benachrichtigung

  • eine Möglichkeit eine Info, dass neue Software gefunden wurde - am liebsten per Mail, also Postie oder Blat zu versenden.

Struktur

  • Einen Ordner wo das ganze hingehört:
  • Im Beispiel nehme ich:
c:\script\wget\paketname

eine Steuerdatei

  • mit dem Inhalt / Link wo im WeltweitenWeb die Software gefunden werden kann.
firefox.ini
http://www.frontmotion.com/Firefox/download_firefox.htm

Ein Steuerscript

Das sich aus 4 Teilen zusammenfügt
  • Teil 1: Parameter setzen, aufräumen und die Indexseite laden
  • Teil 2: Die Indexseite durchforsten und die Links finden
  • Teil 3: Die Software laden/oder auch nicht
  • Teil 4: Herausfinden, ob eine neuere Datei geladen wurde - siehe die Frage von Miniversum: - Windows Wget "kennt" keinen Errorlevel....

01.
:Part 1 (Parameter) 
02.
setlocal 
03.
set "http_proxy=http://192.168.254.254:80" 
04.
set "mailserver=192.168.254.253" 
05.
 
06.
:Part 2 (checker) 
07.
cd /d C:\script\wget\firefox 
08.
del C:\script\wget\firefox\download_firefox.cmd 
09.
dir /b C:\script\wget\firefox\*.msi>msi-vorher.ini 
10.
call wget.exe -Y --proxy=on -N -i C:\script\wget\firefox\firefox.ini 
11.
findstr "de.msi" C:\script\wget\firefox\download_firefox.htm|findstr "href">C:\script\wget\firefox\download_firefox.txt && goto download 
12.
echo "Fehler kein Link gefunden - Struktur der Webseite wurde evtl. modifiziert">C:\script\wget\firefox\firefox.txt & goto mail 
13.
 
14.
:download 
15.
for /f "usebackq tokens=3 delims=<:>" %%a in (C:\script\wget\firefox\download_firefox.txt) do echo wget -N http:%%a>>C:\script\wget\firefox\download_firefox.cmd 
16.
call C:\script\wget\firefox\download_firefox.cmd 
17.
dir /b C:\script\wget\firefox\*.msi>msi-nachher.ini 
18.
fc C:\script\wget\firefox\msi-vorher.ini C:\script\wget\firefox\msi-nachher.ini && goto end 
19.
echo "Neuer Firefox am %date:~-4%.%date:~-7,2%.%date:~-10,2% heruntergeladen.>C:\script\wget\firefox\firefox.txt 
20.
 
21.
:mail 
22.
C:\script\wget\postie.exe -host:%mailserver% -to:TiMo.beil@administrator.de -file:C:\script\wget\firefox\firefox.txt -from:firefoxupdater -s:Firefoxupdater 
23.
 
24.
 
25.
:copy2server 
26.
for /f %%a in ('"dir /b C:\script\wget\firefox\*.msi"') do ( 
27.
	md \\server\freigabe\firefox\%%~na 
28.
	copy %%a \\\server\freigabe\firefox\%%~na 
29.
30.
:end

Gruß
Kommentar schreibenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
Diskussionsverlauf (16 Kommentare)
thread
99045
Kommentar 99045 schreibt am 26.04.2011, 14:25:51 Uhr
Undank ist der Welt Lohn. Nimm's leicht. face-wink

Wer Klickibunti bevorzugt, kann auch ein GUI verwenden.

Wer sich etwas intensiver mit den vielfältigen Möglichkeiten von wget beschäftigen möchte, dem empfehle ich, sich die Hilfe
wget --help
mal auszudrucken.

T-Mo: +1
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
Snowman25
Kommentar Snowman25 schreibt am 26.04.2011, 14:34:35 Uhr
Zitat von 99045:
Undank ist der Welt Lohn.

Sollten gerade wir ITler und Administratoren wissen.
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
liamibiza
Kommentar liamibiza schreibt am 26.04.2011, 19:37:41 Uhr
Zitat von Snowman25:
> Zitat von 99045:
> ----
> Undank ist der Welt Lohn.

Sollten gerade wir ITler und Administratoren wissen.


Leider wahr.

Aber hier mal ne ausname.

Klasse Anleitung.
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
ingbrixen
Kommentar ingbrixen schreibt am 27.04.2011, 10:32:57 Uhr
ich habe vor langer zeit mal das benutzt: http://www.httrack.com/
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
miniversum
Kommentar miniversum schreibt am 26.04.2011, 14:52:35 Uhr
Ich versteh enicht ganz warum du die Aktion mit dem kopieren und vergleichen der alten und neuen Datei machst?
Wget kann doch selbst vergleichen ob die Datei auf dem Server neuer ist als die lokale Version und läd auch nur dann die datei runter wenn es notwendig ist? Da sparst du die unnötiges runterladen.
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
TimoBeil
Kommentar TimoBeil schreibt am 26.04.2011, 15:19:52 Uhr
Zitat von miniversum:
Ich versteh enicht ganz warum du die Aktion mit dem kopieren und vergleichen der alten und neuen Datei machst?

Salü,

den Parameter -n setze ich schon....

aber.......

eine Datei C:\script\wget\firefox\firefox.inf.existiert z.B in folgendem Beispiel nicht - ergo No URLs found in C:\script\wget\firefox\firefox.inf. und trotzdem kommt immer ja und kein Nein.....
Bis auf den ausgexiten Proxy alles live....

C:\script\wget\firefox>wget.exe -Y --proxy=on -N -i C:\script\wget\firefox\firef 
ox.ini && echo ja ||echo nein 
wget: useproxy: Please specify on or off. 
--15:15:35--  http://www.frontmotion.com:80/Firefox/download_firefox.htm 
           => `download_firefox.htm' 
Connecting to xxx.xxx.xxx.xxx:80... connected! 
Proxy request sent, awaiting response... 200 OK 
Length: 34,711 [text/html] 
Local file `download_firefox.htm' is more recent, not retrieving. 
 
ja
soweit alles logisch..

Jetzt aber mit einem absichtlichen "bock" - der Nein liefern sollte.
C:\script\wget\firefox>wget.exe -Y --proxy=on -N -i C:\script\wget\firefox\firef 
ox.inf && echo ja ||echo nein 
wget: useproxy: Please specify on or off. 
C:\script\wget\firefox\firefox.inf: No such file or directory 
No URLs found in C:\script\wget\firefox\firefox.inf. 
ja 
 
C:\script\wget\firefox>

oder so herum:
C:\script\wget\firefox>wget.exe -Y --proxy=on -N -i C:\script\wget\firefox\firef 
ox.ini |find "more recent" && echo ja ||echo nein 
wget: useproxy: Please specify on or off. 
--15:21:38--  http://www.frontmotion.com:80/Firefox/download_firefox.htm 
           => `download_firefox.htm' 
Connecting to xxx.xxx.xxx.xxx:80... connected! 
Proxy request sent, awaiting response... 200 OK 
Length: 34,711 [text/html] 
Local file `download_firefox.htm' is more recent, not retrieving.

kapische face-wink
ich schrub doch - da steckt etwas Zeit drin....

edit
und dann gibt es noch die Pakete, die automatisch ins Web gestellt werden - da greift trotz gleichem Dateiinhalt das -newer logischerweise nicht und diese Builds sind der Grund, warum man das Script nicht täglich laufen lassen sollte.
/edit

Gruß
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
davidl
Kommentar davidl schreibt am 27.04.2011, 14:31:52 Uhr
Hi,

Super Sache um seine Installations-Dateien aktuell zu halten.
Ich hab mir da Steuerscript ein wenig für den VLC-Mediaplayer modifiziert.

01.
:setlocal 
02.
set http_proxy=http://PROXY:80 
03.
cd /d D:\Skript\installer\vlc 
04.
 
05.
del D:\Skript\installer\vlc\download_vlc.cmd 
06.
 
07.
dir /b D:\Skript\installer\vlc\*.exe>exe-vorher.ini 
08.
 
09.
call D:\Skript\bin\wget.exe --no-proxy -N -i D:\Skript\installer\vlc\vlc.ini 
10.
 
11.
findstr "application/x-msdos-program" D:\Skript\installer\vlc\index.html>D:\Skript\installer\vlc\download_vlc.txt 
12.
 
13.
for /f "usebackq tokens=4 delims=<:>" %%a in (D:\Skript\installer\vlc\download_vlc.txt) do D:\Skript\bin\wget -N http://download.videolan.org/pub/videolan/vlc/last/win32/%%a>>D:\Skript\installer\vlc\download_vlc.cmd 
14.
 
15.
call D:\Skript\installer\vlc\download_vlc.cmd 
16.
 
17.
dir /b D:\Skript\installer\vlc\*.exe>exe-nachher.ini 
18.
 
19.
fc /b D:\Skript\installer\vlc\exe-vorher.ini D:\Skript\installer\vlc\exe-nachher.ini && goto end 
20.
 
21.
:LOG 
22.
echo "Neuer vlc am %date:~-4%.%date:~-7,2%.%date:~-10,2% heruntergeladen.>>D:\Skript\LOG.txt 
23.
 
24.
:copy2server 
25.
for /f %%a in ('"dir /b D:\Skript\installer\vlc\*.exe"') do ( 
26.
	md <Pfad zu Installationsdateien>\vlc 
27.
	copy %%a <Pfad zu Installationsdateien>\vlc 
28.
29.
:end 
30.
REM PAUSE

In der vlc.ini steht die Adresse
http://download.videolan.org/pub/videolan ...
gespeichert.
Musste es ein wenig anders angehen, aber die Verzeichnisstruktur von Sourcefourge mit einem eigenen Unterpunkt "last" war da sehr entgegenkommen.

Jetzt wollt ich das auch für ein paar andere Programme machen, nur find/kenn ich keine Seite, wo *.msi oder *.exe-Dateien so schön aufgelsitet sind wie hier:
http://www.frontmotion.com/Firefox/downlo ...
Gibts da ein paar andere Modifikationen bzw. andere so schön gegliederte Seiten.

Lg David
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
TimoBeil
Kommentar TimoBeil schreibt am 27.04.2011, 15:00:32 Uhr
moin,

Zitat von davidl:
Hi,

Super Sache um seine Installations-Dateien aktuell zu halten.
  • freut mich face-wink

Ich hab mir da Steuerscript ein wenig für den VLC-Mediaplayer modifiziert.

Den VLC hole ich mir so:
C:\script\wget\vlc\vlc.txt  
http://download.videolan.org/pub/videolan/vlc/last/win32/

01.
/snip 
02.
if not exist C:\script\wget\vlc\index.html wget.exe -Y --proxy=on -N -i C:\script\wget\vlc\vlc.txt 
03.
findstr "win32.exe" C:\script\wget\vlc\index.html |findstr /v "sha md5 asc">C:\script\wget\vlc\vlc-all.ini 
04.
for /F "tokens=6 delims=><=" %%a in (C:\script\wget\vlc\vlc-all.ini) do echo http://download.videolan.org/pub/videolan/vlc/last/win32/%%a>C:\script\wget\vlc\vlc-down.ini 
05.
ping localhost -n 10 >nul 
06.
call wget.exe -Y --proxy=on -N -i C:\script\wget\vlc\vlc-down.ini 
07.
 
08.
for /F  %%a in ('dir /b /OD C:\script\wget\vlc\vlc*.exe') do set lastvlc=%%a 
09.
if exist \\server\freigabe\vlc\%lastvlc% goto end 
10.
 
11.
rem usw. 
12.
\snap

Gibts da ein paar andere Modifikationen bzw. andere so schön gegliederte Seiten.
  • Außer Firefox und VLC besorge ich mir alles mögliche - Acrobat, EItunes, Flash, Filezilla, die Firmware der Switche usw usf....
Man muß nur ideen haben.
Übrigens nutze ich da oben kein fc vorher/nachher, denn bei VLC ist der so nicht nötig.
Das /b hinterm fc ist übrigens wirklich zuviel - schadet aber nix, also blieb es bei mir drin.

Aber deine Zeile 13 ist irgendwie Freitäglich....
do D:\Skript\bin\wget -N http://download.videolan.org/pub/videolan ...:\Skript\installer\vlc\download_vlc.cmd

Streng genommen könnte man komplett auf die temporären Dateien verzichten, da das aber immer Webseiten fremder Admins betrifft, finde ich es so schöner und einfacher eine Änderung der Webstruktur nachzuvollziehen.
Im Fall von VLC z.B gibt es im Unterschied zu Firefox ja nur einen Strang, Firefox hat derzeit 3 (3.0 3.6 4.x)


Lg David
zurück
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
TimoBeil
Kommentar TimoBeil schreibt am 29.06.2011, 13:15:45 Uhr
Aus irgendeinem Grund in der DB kann ich diesen Beitrag nicht mehr editieren...
Zitat von TimoBeil:
moin,

Den VLC hole ich mir so:
C:\script\wget\vlc\vlc.txt  
http://download.videolan.org/pub/videolan/vlc/last/win32/

Und weil ich mich nicht ausschliesslich auf diese Lösung verlasse - habe ich auch gemerkt, dass
unter http://download.videolan.org/pub/videolan ... die derzeit neueste Version 1.1.10 und sehr wahrscheinlich folgende
nicht mehr aufgelistet werden.

Die taucht unter http://download.videolan.org/vlc/1.1.10/w ... auf
Und das Script muß dann http://www.videolan.org/vlc/download-wind ... auswerten.

01.
:start 
02.
cd /d C:\script\wget\vlc 
03.
wget.exe -N http://www.videolan.org/vlc/download-windows.html 
04.
ping localhost -n 5 >nul 
05.
 
06.
findstr "win32.exe" C:\script\wget\vlc\download-windows.html>C:\script\wget\vlc\vlc-all.ini 
07.
for /F "tokens=4 delims='" %%a in (C:\script\wget\vlc\vlc-all.ini) do echo %%a>C:\script\wget\vlc\vlc-down.ini 
08.
ping localhost -n 10 >nul 
09.
call wget.exe -N -i C:\script\wget\vlc\vlc-down.ini

Ergo:

  • Automatik ist gut - Kontrolle ist besser.


Gruß
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
m3adow
Kommentar m3adow schreibt am 27.04.2011, 14:38:32 Uhr
Grützi,

ich hab die Anleitung eben durch Zufall auf der Startseite angezeigt gesehen. Sowas steht noch in meiner "sollte man mal machen"-Liste, die ich abarbeiten will, wenn ich Zeit dafür habe. Danke schonmal, in ein paar Monaten wird sie mir hoffentlich hilfreich sein. ;)
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
jenni
Kommentar jenni schreibt am 27.04.2011, 15:13:03 Uhr
Moin TimoBeil,

geiles Ding! ich werde es nächste Woche mal antesten.

gruß Jens
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
keksdieb
Kommentar keksdieb schreibt am 28.04.2011, 14:16:39 Uhr
Moin moin...

Bis dato war mir fremd, das es WGET auch für Windows gibt...

Script werde ich am Wochenende mal testen, sowas versuche ich seit ewig und drei Tagen mit Powershell und verstolper mich face-sad
Vielen Dank für die Denkanstösse...

Gruß aus dem Süden

Keksdieb
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
Crusher79
Kommentar Crusher79 schreibt am 02.05.2011, 00:17:51 Uhr
Hi,

sehr geile Sache! Genau so was hab ich gesucht.

Hatte mal einen Ansatz mit ipcop + adv. proxy gemacht. Der Proxy cached ja dann z.B. alle MS Updates oder auch beliebige Software. Nur musste man die erst im Scritpt angeben. Ok, bei dir ja auch. Aber ist ja auch kein großes Ding.

So oder so fehlte mir das Feedback. Ich sah zwar das es gecached war, aber das bringt nur was, wenn man mehrere PCs updaten will. Benachrichtigugnen waren da Fehlanzeige.

Dein Script füllt endlich die Lücke. Denn im moment hier am einzelnen Client brauch ich ja nich viel mehr. Ausserdem dümpelt sonst die Sw ja im Cache umher. Wollte sie aber hübsch einsortieren.

mfg Crusher
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
Lochkartenstanzer
Kommentar Lochkartenstanzer schreibt am 24.05.2011, 13:33:22 Uhr
Zitat von keksdieb:
Moin moin...

Bis dato war mir fremd, das es WGET auch für Windows gibt...


Es gibt noch viel mehr für Windows, siehe z.B. http://cygwin.com
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
kkboy94
Kommentar kkboy94 schreibt am 09.05.2011, 21:44:23 Uhr
Ich finds gut, ums kurz zu sagen.
Werd ich sicher mal benutzen.


Aber mal ne Frage. Könnte man den Code nicht auch so umbasteln, dass er dann die neuesten Treiber runterläd, oder wäre das eine zu komplizierte Änderung?
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
mecie21313
Kommentar mecie21313 schreibt am 29.05.2011, 22:08:28 Uhr
Sehr gute Idee bzw. Ansatz.

Ich denke, es ist auf alle Fälle Hilfreich, wenn man als Admin mehrere PCs hat, die alle die gleiche Software bzw. Softwarestand haben sollten.

Ist es denn Möglich, ohne großartige Veränderungen, mehrere Proggys oder evtl. sogar Treiber zyklisch abzufragen?

Ich könnt mir z.B. folgendes Szenario vorstellen:
ein kleines Büro (2 Server, 10 Arbeitsplätze) wo dann auf einem der beiden Server dieses Tool läuft und die angeschlossenen PCs dann 1mal pro Woche überprüft und die Software selbstständig aktuallisiert.

Gruss
Andy
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.