Re: Off-topic (Für Nagios): Windows-Batch

From: Peter Ross <Peter.Ross(at)alumni.tu-berlin.de>
Date: Fri, 19 Jul 2013 09:46:05 +1000 (EST)

Hi Olli,

On Thu, 18 Jul 2013, Oliver Fromme wrote:

> Peter Ross wrote:
> > hoffentlich entschuldigt Ihr, daß ich Euch mit einer Windows-Frage
> > behellige..
> >
> > Ich habe Nagios (ja, Lars, _noch_ ist es Nagios;-) und überwache damit
> > auch Windows-Maschinen.
> >
> > Dort habe ich ein Verzeichnis, welches via Subversion aktualisiert wird.
> > Ich habe Tortoise-SVN installiert, mit dem "svn" -Kommando.
> >
> > Ich möchte über ein Nagios-Plugin sicherstellen, daß dieses aktuell ist.
> >
> > Um lokale Veränderungen zu erfassen, würde ich unter Unix etwas wie:
> >
> > neu=`svn status ${Dir} | awk '{if ($1!="?") print $2}'`
> > if [ ! "X$neu" = "X" ]; then
> > ... (bitte melden)
>
> Ich würd's unter UNIX so machen:
>
> if ! svn status ${Dir} | grep -q '^[^?]'; then

Danke. Allerdings brauche ich den Unix-Code gar nicht..

> Spricht was dagegen, cygwin zu installieren? Dann hast Du
> 'ne bash, grep, awk usw. und kannst es genau so machen wie
> unter UNIX.

Das stimmt, aber mit CygWin (und updates) habe ih in grauer Vergangenheit
schlerchte Erfahrungen gemacht: Updates haben manchmal das ganze CygWin
"zerschossen" und dann mußte ich alles neuinstallieren.

Für dieses eine Problem ist es mir denm Aufwand nicht wert, es schafft
zuviele potentielle neue "Baustellen".

Gelöst haben wir es mit Windows "built-in" awk und find:

for /f "tokens=1" %%i in ('svn status %LOCAL_LOCATION% ^| find /v "?"')
do (
   set CHANGED="%%i"
   if %%i NEQ "" goto :error else goto :next
)

"for /f" nimmt alle Zeilen,

"tokens=1" ist awks $1 (also "A" und "M" in Subversions Ausgabe etc.),

und "find" ist grep in Unix, und /v ist -v.

So einfach;-)

Es grüßt
Peter

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-chat" in the body of the message
Received on Fri 19 Jul 2013 - 01:46:44 CEST

search this site