Herunter geladene Updates auflisten?

Herunter geladene Updates auflisten?

Postby JohannIsbeer » 17.09.2014, 12:17

Hallo,

ich verwende seit einigen Wochen das Linux-Skript zum Herunterladen der Microsoft-Updates.
Das Skript wird regelmäßig per cron ausgeführt - ohne Probleme.

Jetzt würde ich gerne feststellen, ob neue Updates herunter geladen wurden (die Ausgabe des Skripts per grep oder awk bearbeiten), und mir eine Mail senden lassen.
Leider sehe ich in der Ausgabe des Skripts lediglich zum Schluß "87 patches successfully downloaded".

Kann ich mir die neu herunter geladenen Updates anzeigen lassen? Oder wie kann ich herausfinden, welche Updates herunter geladen wurden?

Hat jemand eine Idee, wie ich an die Infos heran komme?!

Danke und viele Grüße
JohannIsbeer
 

Re: Herunter geladene Updates auflisten?

Postby Gerby » 18.09.2014, 10:29

Hallo Johann,

ich habe das Linux-Downloadskript zwar noch nie verwendet, aber schreibt es eventuell, wie unter Windows auch, in "./log/download.log"? Dort werden bei Downloads unter Windows die einzelnen Dateien aufgelistet. Nach welchen Kriterien man die Datei am besten auswertet (parsing), um die einzelnen, heruntergeladenen Dateien zu erkennen, ist dann wiederum eine andere Sache.

Gruß
Gerby
Mach mit - der Übersichtlichkeit wegen! Füge Log-Auszüge als [Code] ein.
Make it clear! Insert log excerpts as [Code].
Gerby
 
Posts: 504
Joined: 11.09.2009, 15:57
Location: DE > SH > SE

Re: Herunter geladene Updates auflisten?

Postby hbuhrmester » 28.09.2014, 13:18

Das Linuxskript verwendet wget, um alle Dateien herunterzuladen. Unter Windows wird wget.exe verwendet, eine Portierung desselben Tools nach Windows. Die Logdatei wird auch von wget.exe geschrieben. Dann muss man eigentlich nur die Parameter vergleichen, die unter Windows und Linux verwendet werden.

Unter Windows werden die Parameter in der Datei DownloadUpdates.cmd definiert.

Datei DownloadUpdates.cmd, Version 9.4, Zeile 15:

Code: Select all
set DOWNLOAD_LOGFILE=..\log\download.log


Datei DownloadUpdates.cmd, Version 9.4, Zeile 206 - 213:

Code: Select all
if exist custom\SetAria2EnvVars.cmd (call custom\SetAria2EnvVars.cmd) else (
  set DLDR_PATH=..\bin\wget.exe
  set DLDR_COPT=-N
  set DLDR_LOPT=-a %DOWNLOAD_LOGFILE%
  set DLDR_IOPT=-i
  set DLDR_POPT=-P
  set DLDR_NVOPT=-nv
)


Unter Linux wird eine Shellfunktion doWget() definiert.

Datei commonparts.inc, Version 9.4, Zeile 189 - 194:

Code: Select all
doWget()
{
echo "wget -nv -N --timeout=120 $*" | tee -a ../temp/wget.$mydate
wget -nv -N --timeout=120 $* 2>>../temp/wget.$mydate
return $?
}


Der Aufruf von wget wird also in eine Datei temp/wget.$mydate geschrieben. Auch die Terminalausgabe von wget wird in diese Datei umgeleitet. Mit der Option "--no-verbose" (-nv) produziert wget aber kaum Ausgaben.

Man kann hier übrigens eine Eigenheit von wget erkennen: wget verwendet die Standardausgabe normalerweise überhaupt nicht; alle Terminalausgaben werden in die Fehlerausgabe geschrieben. Deshalb ist die Umlenkung 2>>../temp/wget.$mydate hier richtig. Die Idee dabei ist wohl, dass man statt dessen die heruntergeladenen Dateien mit --output-document=- in die Standardausgabe schreiben kann.

Um eine Liste der heruntergeladenen Dateien wie unter Windows zu bekommen, muss man den Parameter -a (--append-output) ergänzen:

Code: Select all
doWget()
{
echo "wget -nv -N --timeout=120 $*" | tee -a ../temp/wget.$mydate
wget -nv -N --timeout=120 --append-output=../temp/wget.$mydate $* 2>>../temp/wget.$mydate
return $?
}


Viele Grüße,
Hartmut
hbuhrmester
 
Posts: 525
Joined: 11.10.2013, 20:59


Return to Linux

Who is online

Users browsing this forum: No registered users and 38 guests