Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!

APC USV Zeitverzögert Meldung senden (On Battery)

Alles zum Thema vSphere 6.7, ESXi 6.7 und vCenter Server.

Moderatoren: irix, Dayworker

Member
Beiträge: 36
Registriert: 24.05.2018, 11:07

APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Syosse » 25.05.2018, 11:27

Hallo Jungs


Habe soeben meinen USV (APC Pro 1200) im einsatz, die USV ist mit USB an meinen Server (VmWare Esxi 6.7) verbunden und via Passtrought weitergeleitet an meinen Windows 2016 Server Maschine.
Installiert habe ich das Tool Powerchute Buisness Edition. Nun habe ich folgendes eingerichtet das wenn bei Ereignisanzeige die Meldung On Battery von APC erscheint, meine Aufgabe ausgeführt wird und das Esxi sich nach 5minuten ausschaltet.

Leider habe ich dabei noch ein Denkfehler gemacht, wenn es einen kurzen unterbruch von 1 Minute, geht ja die Meldung auch raus unabhängig ob der wieder Strom hat oder nicht.
Meine Frage kann ich bei Powerchute einstellen das die Meldung an mein Windows verspätet raus geht z.B der Strom geht aus und die Battery wird genutzt und das erst nach 10minuten wenn die Battery noch genutzt wird die Meldung rausgeht an Ereignisanzeige ?


Ist Zustand: APC USV hat kein Strom und wechselt in Battery Modus -> Meldung wird sofort an Windows geschickt -> Ereignisanzeige kommt dann die Meldung On Battery -> meine Aufgabe wird ausgeführt -> Esxi wird heruntergefahren.

Soll Zustand: APC USV hat kein Strom und wechselt in Battery Modus -> Meldung darf nicht sofort an Windows geschickt werden! -> Erst wenn nach 10 Minuten der USV immernoch kein Strom hat und im Battery Modus ist -> Meldung wird an Windows geschickt -> Ereignisanzeige kommt dann die Meldung On Battery -> meine Aufgabe wird ausgeführt -> Esxi wird heruntergefahren.


Vielen Dank für die Hilfe!!!
Freundliche Grüsse

Experte
Beiträge: 1337
Registriert: 25.04.2009, 11:17
Wohnort: Thüringen

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Supi » 25.05.2018, 12:20

Ich verstehe nicht so ganz, was du mit "meiner Aufgabe" meinst. Das regelst du eigentlich alles im Powerchute Buisness Edition. Da stellst du ein, nach so und so viel Minuten "on Battery", den Rechner runterfahren bzw. eine Script beim Shutdown ausführen ausführen.
Dafür ist die Software doch da. Sonst könntest du auch den integrieren USV Dienst des Servers nutzen, ohne die Software.

Ggf. hilfreiche Links:
https://blog.officemanager.de/2015/03/usv-windows/
https://community.spiceworks.com/script ... ch-all-ups

Member
Beiträge: 36
Registriert: 24.05.2018, 11:07

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Syosse » 25.05.2018, 13:24

Supi hat geschrieben:Ich verstehe nicht so ganz, was du mit "meiner Aufgabe" meinst. Das regelst du eigentlich alles im Powerchute Buisness Edition. Da stellst du ein, nach so und so viel Minuten "on Battery", den Rechner runterfahren bzw. eine Script beim Shutdown ausführen ausführen.
Dafür ist die Software doch da. Sonst könntest du auch den integrieren USV Dienst des Servers nutzen, ohne die Software.

Ggf. hilfreiche Links:
https://blog.officemanager.de/2015/03/usv-windows/
https://community.spiceworks.com/script ... ch-all-ups



Windows Ja aber nicht ESXI. Du kannst bei Windows Aufgabeplanung erstellen wenn ein Ereignis auftritt wie hier jetzt APC hatt ein Ereignis geschickt das der Zustand auf Battery geschaltet hat. Dann wird automatisch meine Aufgabe ausgeführt und in dieser Aufgabe steht das der via Putty einen Befehl zu Esxi schicken soll und Esxi herunterfahren soll.

Experte
Beiträge: 1337
Registriert: 25.04.2009, 11:17
Wohnort: Thüringen

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Supi » 25.05.2018, 14:17

Syosse hat geschrieben:Windows Ja aber nicht ESXI.


Mir ist schon klar, das es dir um den ESXi geht. Ich gehe hier auch von einem Free aus?

http://www.apc.com/salestools/PMAR-9BUL ... _R1_EN.pdf

hier ist doch die Vorgehensweise gut auf Seite 21 beschrieben:

....Command File: Runs a user-specified command file when an event occurs.
Command files are often used to shut down open applications in order to avoid loss of data. They have to be
placed in this folder:
<Installation folder>\APC\PowerChute Business Edition\agent\cmdfiles
which for example is, by default on Windows, this folder:
C:\Program Files\APC\PowerChute Business Edition\agent\cmdfiles
Click on the Command File icon to enable it, and choose a file to run and a duration.


da deine Batch hin kopieren und den rest regelt der APC dienst. Kein Event Triggern über die Aufgabensteuerung. Geht sicher auch über ein WMI Event, aber wieso so kompliziert?
Wenn der ESXI lizenziert ist, gehts ja noch einfacher über die Appliance von APC oder per Power Cli Einzeiler.
C:\Program Files\VMware\VMware vSphere CLI\bin\vicfg-hostops.pl" --server IP --username root --password dein_password --operation shutdown -f

Unter der Maßgabe, das VM Shutdown des ESXI ist aktiv. Oder funktioniert der auch bei der Free nicht?

Member
Beiträge: 36
Registriert: 24.05.2018, 11:07

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Syosse » 25.05.2018, 15:06

Supi hat geschrieben:
Syosse hat geschrieben:Windows Ja aber nicht ESXI.


Mir ist schon klar, das es dir um den ESXi geht. Ich gehe hier auch von einem Free aus?

http://www.apc.com/salestools/PMAR-9BUL ... _R1_EN.pdf

hier ist doch die Vorgehensweise gut auf Seite 21 beschrieben:

....Command File: Runs a user-specified command file when an event occurs.
Command files are often used to shut down open applications in order to avoid loss of data. They have to be
placed in this folder:
<Installation folder>\APC\PowerChute Business Edition\agent\cmdfiles
which for example is, by default on Windows, this folder:
C:\Program Files\APC\PowerChute Business Edition\agent\cmdfiles
Click on the Command File icon to enable it, and choose a file to run and a duration.


da deine Batch hin kopieren und den rest regelt der APC dienst. Kein Event Triggern über die Aufgabensteuerung. Geht sicher auch über ein WMI Event, aber wieso so kompliziert?
Wenn der ESXI lizenziert ist, gehts ja noch einfacher über die Appliance von APC oder per Power Cli Einzeiler.
C:\Program Files\VMware\VMware vSphere CLI\bin\vicfg-hostops.pl" --server IP --username root --password dein_password --operation shutdown -f

Unter der Maßgabe, das VM Shutdown des ESXI ist aktiv. Oder funktioniert der auch bei der Free nicht?



Esxi ist lizenziert. Gut ich werde das nacher in Angriff nehmen. Aber verstehst du was ich meine, dass Esxi erst herunterfährt wenn nach 10min der APC USV immernoch im Battery Zustand ist. Ob das so möglich ist. Vielen Dank für deine Hilfe!

Edit:

C:\Program Files\APC\PowerChute Business Edition\agent\cmdfiles
Click on the Command File icon to enable it, and choose a file to run and a duration.


da deine Batch hin kopieren und den rest regelt der APC dienst. Kein Event Triggern über die Aufgabensteuerung. Geht sicher auch über ein WMI Event, aber wieso so kompliziert?
Das verstehe ich soweit.

C:\Program Files\VMware\VMware vSphere CLI\bin\vicfg-hostops.pl" --server IP --username root --password dein_password --operation shutdown -f
Das jedoch nicht, VMware Esxi läuft ja auf meiner Hardware wo ich auf mein datastore installiert habe. Wo finde ich den diesen Pfad ?

King of the Hill
Beiträge: 13561
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Dayworker » 26.05.2018, 10:39

Auf irgendeinem Win-Rechner mußt du ja die APC-SW installiert haben und darauf installierst du auch die vSphere Power Cli.

Selbst die APC-Version für Privatleute (apc powerchute personal edition) bot die Möglichkeit, Einstellungen für Laufzeit auf Batterie oder verbleibende Restlaufzeit der Batterie vorzunehmen. Allerdings verstehe ich nicht so recht, weshalb man eine Business-USV per USB anschließt. In meinen Augen sind alle USB-USVs nur für Consumer gebaut, was dann eventuell auch dein Rumgewurstel mit dem Ereignis-Log erklären würde. Die Business-Geräte haben für mich immer noch einen richtigen Netzwerkanschluß. Wenns deine APC-Version nicht gebacken bekommt, kannst du fast alle APC-USVs auch über "apcupsd" nutzen. Dazu gibt es hier auch den Thread APC-USV über USB ansprechen und ESX herunterfahren als Einstieg. Allen dabei gemein ist, daß man seine VMs für den Auto-Start bei ESXi-Start einrichtet und sich dabei auch eine passende Reihenfolge einfallen läßt. Die wichtigste VM muß dann am Schluß gestartet werden, weil beim Shutdown die umgekehrte Reihenfolge beginnend mit der zuletzt gestarteten VM abgearbeitet wird.

Experte
Beiträge: 1337
Registriert: 25.04.2009, 11:17
Wohnort: Thüringen

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Supi » 26.05.2018, 10:56

Wie Daywalker schrieb, der Befehl von mir braucht noch das PowerCLI von Vmware. (passend zur ESXI Version)

Version 10.1 nötig: neuere Versionen möchten gerne direkt per Shell installiert werden.
https://www.virtualizationhowto.com/201 ... indows-10/

Und im Handbuch ab Seite 33:

Power Outage Configuration
The Power Outage Configuration options define the response when a power problem causes the UPS
to switch to battery operation
.
• Immediately initiates a shutdown as soon as a On Battery event indicates that the UPS switched
to battery power.
After UPS has been on battery for initiates a shutdown when the UPS has been operating on
battery power for the period of time configured here.


ggf. würde ich sogar hier auf die Personal Edition wechseln:
http://www.apc.com/salestools/SRAJ-8H67 ... _R0_EN.pdf

http://www.apc.com/shop/us/en/products/ ... -SFPCPE302

ist für den Einsteiger ggf. einfacher zu administrieren.

Alternative wäre natürlich auch APCUPSD Daemon. Wobei hier der wohl zu "kompliziert" ist.

Edit:

Ok, mit esxi 6.7 wirds "schwieriger":
https://www.vmware.com/resources/compat ... 5&299=2797

da braucht es schon Version 10.1.

Dann wäre der "Keep it Simple" Weg doch, wie oben beschrieben den Punkt mit der Wartezeit in der APC Software finden und dann dein Script ausführen lassen.

King of the Hill
Beiträge: 13561
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Dayworker » 26.05.2018, 12:25

Das Problem der Personal Edition war (ist? keine Ahnung), daß diese keine Scripts starten konnte. Meine APC Back-UPS 650 (BK650EI) hatte zuvor genau 1 Rechner abgesichert und diesen dann ggf inklu VMs runtergefahren. Scripting gab es damals erst mit der Business-Version und die unterstützte keine USB-Produkte. Ob sich daran etwas geändert hat, kann ich nicht sagen. Seitdem ich vor einigen Jahren vom VMserver 1 über 2 endgültig auf ESXi gewechselt war, habe ich jedenfalls "apcupsd" im Einsatz.

Experte
Beiträge: 1337
Registriert: 25.04.2009, 11:17
Wohnort: Thüringen

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Supi » 27.05.2018, 11:48

Es scheint bei der Personal Edition weiterhin so zu sein, das man keine Scripte starten kann.

https://www.youtube.com/watch?v=XbmkH070aWM

hier ab Minute 4 gibts die vom TS gesuchte Option.
Einfache Lösung wäre ein Shutdown script, dass dann per SSH den ESXI Host herrunterfährt. (In Kombination mit VM Start/Shutdown des ESXi)

https://www.windows-faq.de/2017/01/13/s ... usfuehren/

King of the Hill
Beiträge: 13561
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Dayworker » 27.05.2018, 17:10

Das Problem mit diesen Scripten in Windows war, daß das nicht zuverlässig funktioniert hatte. VMware hatte genau sowas ab der WS6.5.4 probiert gehabt, als die Einstellung der VMserver1&2 intern bereits beschlossene Sache war. Das Auto-Start/Stopp-Feature in die Workstation hat VMware auch erst ab Version 8 zuverlässig hinbekommen und den dafür eingerichteten VMs über das Shared-VM-Feature einen Großteil ihrer Funktionalität weggenommen. Das ist beim ESXi aufgrund seinen anderen Aufbaus weniger von Belang, allerdings muß dann der Shutdown-Aufruf auch vom mit den dafür notwendigen Benutzerrechten versehenen Account passieren oder der ESXi verweigert den Shutdown. Ganz so einfach mit Script an die richtige Stelle werfen, ist das dann also doch nicht.

Ein anderer Punkt ist, daß die USV nicht abschalten darf, nur weil die Verbindung zur APC-SW unterbrochen ist. Zumindest meine Consumer-APC-USV schaltete nach einer gewissen Zeit ab, wenn diese vom mit der APC-SW versehene Rechner fast Null Energieverbrauch feststellte und somit von einem abgeschalteten Rechner ausging. Daher darf der APC-Verwaltungsrechner (VM) nach dem Absetzen des Shutdown-Befehls an den ESXi eben nicht eigenmächtig runterfahren, sondern darf nur vom ESXi aktiv runtergefahren werden. Das bedeutet im Endeffekt für die APC-SW und dieser Script-Versuchslösung, daß diese beim Auslösen nur den laufenden Benutzer abmelden darf, dadurch das Script für den ESXi-Shutdown triggert und der APC-Verwaltungsrechner weiterlaufen muß. Im Umkehrschluß bedeutet das jedoch, daß man diesen Benutzer im Grunde nicht mehr abmelden darf, weil dann das Script aktiv wird. Einfach mal Updates auf dem APC-Verwaltungsrechner einspielen, ist dann mit dieser Versuchslösung vorbei oder man sägt den Ast ab, auf dem man sitzt.

Falls sich diese Einstellungen nicht über die APC-SW realisieren lassen, muß man sich doch mit "apcupsd" oder "Network UPS Tools (NUT)" auseinandersetzen. Will man das nicht, bleibt dann als Alternative nur noch die Investition in eine für den ESXi-Betrieb geeignetere USV.

Member
Beiträge: 36
Registriert: 24.05.2018, 11:07

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Syosse » 28.05.2018, 11:04

Supi hat geschrieben:Es scheint bei der Personal Edition weiterhin so zu sein, das man keine Scripte starten kann.

https://www.youtube.com/watch?v=XbmkH070aWM

hier ab Minute 4 gibts die vom TS gesuchte Option.
Einfache Lösung wäre ein Shutdown script, dass dann per SSH den ESXI Host herrunterfährt. (In Kombination mit VM Start/Shutdown des ESXi)

https://www.windows-faq.de/2017/01/13/s ... usfuehren/



Danke für die Hife.

Ich habe es mit der Personal Edition versucht, nützt mir aber leider nicht viel. Der gibt sofort ein Befehl raus das der On Battery Modus ist wenn ich den Strom rausstecke und nicht wie eingestellt Shutdown wenn die USV nach 5Min noch kein Strom hat. Auch wenn ich den Strom wieder einführe gibt der kein Befehl mehr raus, sondern nur in der Software Personal Edition.


Erhalte nur den Befehl mehr nicht (Siehe Bild)
USV.PNG
USV.PNG (9.46 KiB) 6800 mal betrachtet

Member
Beiträge: 36
Registriert: 24.05.2018, 11:07

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Syosse » 28.05.2018, 11:09

Dayworker hat geschrieben:Auf irgendeinem Win-Rechner mußt du ja die APC-SW installiert haben und darauf installierst du auch die vSphere Power Cli.

Selbst die APC-Version für Privatleute (apc powerchute personal edition) bot die Möglichkeit, Einstellungen für Laufzeit auf Batterie oder verbleibende Restlaufzeit der Batterie vorzunehmen. Allerdings verstehe ich nicht so recht, weshalb man eine Business-USV per USB anschließt. In meinen Augen sind alle USB-USVs nur für Consumer gebaut, was dann eventuell auch dein Rumgewurstel mit dem Ereignis-Log erklären würde. Die Business-Geräte haben für mich immer noch einen richtigen Netzwerkanschluß. Wenns deine APC-Version nicht gebacken bekommt, kannst du fast alle APC-USVs auch über "apcupsd" nutzen. Dazu gibt es hier auch den Thread APC-USV über USB ansprechen und ESX herunterfahren als Einstieg. Allen dabei gemein ist, daß man seine VMs für den Auto-Start bei ESXi-Start einrichtet und sich dabei auch eine passende Reihenfolge einfallen läßt. Die wichtigste VM muß dann am Schluß gestartet werden, weil beim Shutdown die umgekehrte Reihenfolge beginnend mit der zuletzt gestarteten VM abgearbeitet wird.



Bleibt mir wohl nichts anders übrig als über diesen Umständliche Weg mit Debian/apcupsd/Putty und etc..
Werde es nun mit dieser Methode versuchen.

Vielen Dank für die Hilfe!

Gruss


Edit: Habs mir anders überlegt, ich belass es so wie es gerade ist.
Heisst Wenn der Stromzufuhr unterbrochen wird und die USV in Battery Modus wechselt, dass Windows nach 5MIn Herunterfährt und ESXI nach 10min Herunterfährt.

Experte
Beiträge: 1337
Registriert: 25.04.2009, 11:17
Wohnort: Thüringen

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Supi » 28.05.2018, 11:38

Syosse hat geschrieben:
Ich habe es mit der Personal Edition versucht, nützt mir aber leider nicht viel. Der gibt sofort ein Befehl raus das der On Battery Modus ist wenn ich den Strom rausstecke und nicht wie eingestellt Shutdown wenn die USV nach 5Min noch kein Strom hat. Auch wenn ich den Strom wieder einführe gibt der kein Befehl mehr raus, sondern nur in der Software Personal Edition.


Nur noch mal so zum Verständnis. Das der bei "on Battery" eine Meldung triggert, ist grundsätzlich normal und zu 99% gewollt.
Mein Vorschlag war, das die Software nach z.B. 5 min auf Batterie sagt, ok, fahren wir mal lieber das (windows) System herunter. Und bei diesem Shutdown soll dann dein Script als "Shutdown-Script" greifen und damit die restlichen VM's sowie den ESXi selber herunter fährt.
Bevor das Windows Server OS ganz herunter gefahren wird, bekommt der ESXi ebenso noch den Befehl, sich selbst herunter zu fahren.

Ich hatte das mal für eine Testumgebung z.B. so gebaut:
Eine Workstation VM mit virtuellem ESXi wird gestartet. Nach hochfahren des ESXI werden dessen VMs gestartet. Auf dem (virtualisierten) ESXI läuft eine Arbeits-VM. Hier gibts nen Shutdown link, der zuerst den PowerCli Befehl an den ESXI schickt und dann selbst noch mal einen shutdown an die VM.
Damit fährt sowohl diese VM als auch alle anderen VM's des virtuellen ESXi sauber runter und die VM des ESXI (die ja als Workstation VM läuft) ebenso.

Quasi Homelab in einer Workstation Box.

King of the Hill
Beiträge: 13561
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Dayworker » 28.05.2018, 11:40

Ich habe es mit der Personal Edition versucht, nützt mir aber leider nicht viel. Der gibt sofort ein Befehl raus das der On Battery Modus ist und nicht wie eingestellt Shutdown wenn du USV nach 5Min noch kein Strom hat. Auch wenn ich den Strom wieder einführe gibt der kein Befehl mehr raus, sondern nur in der Software Personal Edition.
Sowas läßt sich auch in "apcupsd" nicht konfigurieren. Wenn die USV auf Batterie umgeschaltet hat, gibt sie dafür immer eine Meldung raus.
Der feine Unterschied ist, daß man sowohl mit der "Powerchute Personal Edition" als auch "apcupsd" einstellen kann, daß die USV noch 5min auf Batterie laufen soll oder bei einer Restlaufzeit von X Minuten, den Shutdown einleitet. Mit "apcupsd" kann man sogar beides und noch mehr kombinieren, also sowohl die 5 Minuten auf Batterie, die Restlaufzeit und den Akkustand beachten, wobei dann die 5min nur eingehalten werden, wenn sowohl Restlaufzeit als auch Akkustand ausreichend sind.

Das was du da per Ereignis-Log konstruieren willst, ist gelinde gesagt eine ABM-Maßnahme. Schau dir mal die originale USV-Einbindung bei sämtlichen Windows-Versionen sprich die Energieoptionen genauer an. Da kannst du für eine USV auch nur dieselben Einstellungen vornehmen wie für ein Notebook. Der Unterschied ist, daß "Niedrige" und "Kritische Akkukapazität" deutlich früher einsetzen müssen, weil die für NBs sinnvollen 5Min bei "Kritisch" für einen ESXi-Server halt nicht ausreichen, um sauber runter zu fahren und was man auf keinen Fall will ist, daß der USV-Rechner runterfährt, weil dann ist das wieder die Geschichte mit Baum, Säge, Ast und draufsitzen. Die Windows-Energieerwaltung ist aber genau dafür konzipiert, bei Strom weg läuft die USV bis zum Kritischen Energiestand und fährt dann runter. Kommt der Strom vor Kritisch wieder, erfolgt meines Wissens kein Shutdown, ansonsten wird heruntergefahren und das ist mit "apcupsd" auch nicht anders.

Wenn du schon Windows am Laufen hast, brauchst du den Linux-Umweg ggf überhaupt nicht zu gehen. Seit langem ist "apcupsd" auch für Windows verfügbar...


[add]
supi hat geschrieben:Eine Workstation VM mit virtuellem ESXi wird gestartet. Nach hochfahren des ESXI werden dessen VMs gestartet. Auf dem (virtualisierten) ESXI läuft eine Arbeits-VM. Hier gibts nen Shutdown link, der zuerst den PowerCli Befehl an den ESXI schickt und dann selbst noch mal einen shutdown an die VM.
Damit fährt sowohl diese VM als auch alle anderen VM's des virtuellen ESXi sauber runter und die VM des ESXI (die ja als Workstation VM läuft) ebenso.
Den Shutdown-Befehl an die VM würde ich sein lassen und nur den PowerCli-Befehl an den ESXi schicken. Zumindest meine APC-USV schaltete irgendwann nach 45 oder waren es 60sec ab, wenn der Verwaltungsrechner bei Energiezustand "On-Batterie" nicht mehr erreichbar ist. Daher konnte ich ja die "Powerchute Personal Edition" unter ESXi nicht mehr verwenden und mußte mich mit "apcupsd" beschäftigen. Auch damit verhindert man extra, daß bei Batterielauf der mit "apcupsd" ausgestattete Rechner (VM) runterfährt und triggert nur den ESXi-Shutdown an. Den Rest erledigt dann der ESXi und fährt alle Auto-Start/Stopp-VMs in umgekehrter Reihenfolge runter.

Member
Beiträge: 36
Registriert: 24.05.2018, 11:07

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Syosse » 28.05.2018, 15:05

Dayworker hat geschrieben:
Ich habe es mit der Personal Edition versucht, nützt mir aber leider nicht viel. Der gibt sofort ein Befehl raus das der On Battery Modus ist und nicht wie eingestellt Shutdown wenn du USV nach 5Min noch kein Strom hat. Auch wenn ich den Strom wieder einführe gibt der kein Befehl mehr raus, sondern nur in der Software Personal Edition.
Sowas läßt sich auch in "apcupsd" nicht konfigurieren. Wenn die USV auf Batterie umgeschaltet hat, gibt sie dafür immer eine Meldung raus.
Der feine Unterschied ist, daß man sowohl mit der "Powerchute Personal Edition" als auch "apcupsd" einstellen kann, daß die USV noch 5min auf Batterie laufen soll oder bei einer Restlaufzeit von X Minuten, den Shutdown einleitet. Mit "apcupsd" kann man sogar beides und noch mehr kombinieren, also sowohl die 5 Minuten auf Batterie, die Restlaufzeit und den Akkustand beachten, wobei dann die 5min nur eingehalten werden, wenn sowohl Restlaufzeit als auch Akkustand ausreichend sind.

Das was du da per Ereignis-Log konstruieren willst, ist gelinde gesagt eine ABM-Maßnahme. Schau dir mal die originale USV-Einbindung bei sämtlichen Windows-Versionen sprich die Energieoptionen genauer an. Da kannst du für eine USV auch nur dieselben Einstellungen vornehmen wie für ein Notebook. Der Unterschied ist, daß "Niedrige" und "Kritische Akkukapazität" deutlich früher einsetzen müssen, weil die für NBs sinnvollen 5Min bei "Kritisch" für einen ESXi-Server halt nicht ausreichen, um sauber runter zu fahren und was man auf keinen Fall will ist, daß der USV-Rechner runterfährt, weil dann ist das wieder die Geschichte mit Baum, Säge, Ast und draufsitzen. Die Windows-Energieerwaltung ist aber genau dafür konzipiert, bei Strom weg läuft die USV bis zum Kritischen Energiestand und fährt dann runter. Kommt der Strom vor Kritisch wieder, erfolgt meines Wissens kein Shutdown, ansonsten wird heruntergefahren und das ist mit "apcupsd" auch nicht anders.

Wenn du schon Windows am Laufen hast, brauchst du den Linux-Umweg ggf überhaupt nicht zu gehen. Seit langem ist "apcupsd" auch für Windows verfügbar...


[add]
supi hat geschrieben:Eine Workstation VM mit virtuellem ESXi wird gestartet. Nach hochfahren des ESXI werden dessen VMs gestartet. Auf dem (virtualisierten) ESXI läuft eine Arbeits-VM. Hier gibts nen Shutdown link, der zuerst den PowerCli Befehl an den ESXI schickt und dann selbst noch mal einen shutdown an die VM.
Damit fährt sowohl diese VM als auch alle anderen VM's des virtuellen ESXi sauber runter und die VM des ESXI (die ja als Workstation VM läuft) ebenso.
Den Shutdown-Befehl an die VM würde ich sein lassen und nur den PowerCli-Befehl an den ESXi schicken. Zumindest meine APC-USV schaltete irgendwann nach 45 oder waren es 60sec ab, wenn der Verwaltungsrechner bei Energiezustand "On-Batterie" nicht mehr erreichbar ist. Daher konnte ich ja die "Powerchute Personal Edition" unter ESXi nicht mehr verwenden und mußte mich mit "apcupsd" beschäftigen. Auch damit verhindert man extra, daß bei Batterielauf der mit "apcupsd" ausgestattete Rechner (VM) runterfährt und triggert nur den ESXi-Shutdown an. Den Rest erledigt dann der ESXi und fährt alle Auto-Start/Stopp-VMs in umgekehrter Reihenfolge runter.



Vielen Dank für deine ausführlichen Antworten.

Das mit der 5min Laufzeit im Battery Modus->Shutdown Vmware, würde mir natürlich reichen. Habe soeben die Personal Edition sowie die Buisness Edition deinstalliert und die apcupsd mit den USB Treiber installiert. Soweit so gut, die Verbindung steht und auch die Meldungen erscheinen von apcupsd wenn ich den Stromstecker raussziehe und wieder einstecke.

Nun bin ich dran die C:\apcupsd\etc\apcupsd\apccontrol.bat zu editieren. Meine Frage brauch ich die Vmware PowerCli noch ?
Weil ich kann Esxi ja via Putty steuern mit den Befehlen:

Bei Zeile 162

rem %SHUTDOWN% -h now
start C:\Program Files\PuTTY\plink.exe -ssh -pw srvvmwar -2 root@192.168.1.10 "sleep 2m && /sbin/shutdown.sh && /sbin/poweroff"
C:\Program Files\PuTTY\plink.exe -ssh -pw srvvmware -2 root@192.168.1.10"vim-cmd vmsvc/power.shutdown 1"
GOTO :done

Mit den Befehlen schaltet er die Maschinen aus und dann sich selbst (Esxi) auch.

Dann muss ich noch die Zeile ab 114 ändern für z.b das der den Shutdown befehl nach 5min gibt:

:onbattery
%POPUP% "Power failure. Running on UPS batteries."

GOTO :done

Ist das so korrekt ?

Gruss

King of the Hill
Beiträge: 13561
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Dayworker » 28.05.2018, 19:30

Ich hab dir mal meine Settings hochgeladen...

In der apccontrol.bat habe ich ab 162 zu stehen:

Code: Alles auswählen

rem   %SHUTDOWN% -h now
C:\apcupsd\etc\apcupsd\plink root@esxi -pw esxi halt > c:\apcupsd\etc\doshutdown.log 2>&1
exit /b 99
   GOTO :done
Damit bekommt mein ESXi-5.5 die Anweisung anzuhalten und das Log zu befüllen. Die exit-Zeile war (ist?) unter Linux nötig, damit der apcupsd-Rechner nicht einfach nur schnell Runterfährt, sondern über das Script auch den ESXi vorher noch antriggert. Ich habe die Einstellungen direkt von Linux übernommen und soweit beibehalten. Die restliche "apccontrol.bat" habe ich unverändert gelassen, weil die restliche Config in apcupsd.CONF-Datei abgewickelt wird.

Code: Alles auswählen

# ======== Configuration parameters used during power failures ==========
#

# The ONBATTERYDELAY is the time in seconds from when a power failure
#   is detected until we react to it with an onbattery event.
#
#   This means that, apccontrol will be called with the powerout argument
#   immediately when a power failure is detected.  However, the
#   onbattery argument is passed to apccontrol only after the
#   ONBATTERYDELAY time.  If you don't want to be annoyed by short
#   powerfailures, make sure that apccontrol powerout does nothing
#   i.e. comment out the wall.
ONBATTERYDELAY 6

#
# Note: BATTERYLEVEL, MINUTES, and TIMEOUT work in conjunction, so
# the first that occurs will cause the initation of a shutdown.
#

# If during a power failure, the remaining battery percentage
# (as reported by the UPS) is below or equal to BATTERYLEVEL,
# apcupsd will initiate a system shutdown.
BATTERYLEVEL 50

# If during a power failure, the remaining runtime in minutes
# (as calculated internally by the UPS) is below or equal to MINUTES,8
# apcupsd, will initiate a system shutdown.
MINUTES 10

# If during a power failure, the UPS has run on batteries for TIMEOUT
# many seconds or longer, apcupsd will initiate a system shutdown.
# A value of 0 disables this timer.
#
#  Note, if you have a Smart UPS, you will most likely want to disable
#    this timer by setting it to zero. That way, you UPS will continue
#    on batteries until either the % charge remaing drops to or below BATTERYLEVEL,
#    or the remaining battery runtime drops to or below MINUTES.  Of course,
#    if you are testing, setting this to 60 causes a quick system shutdown
#    if you pull the power plug.   
#  If you have an older dumb UPS, you will want to set this to less than
#    the time you know you can run on batteries.
TIMEOUT 60
Wenn die USV 1min (TIMEOUT 60) auf Batterie gelaufen ist, war hier meist etwas grösseres passiert und daher soll meine USV dann einfach runterfahren. Ist das Batterielevel unter 50 Prozent (BATTERYLEVEL 50) oder ist die Restlaufzeit der Batterie unter 10min (MINUTES 10), was eine alternde Batterie mit einbezieht, fährt die USV den ESXi schon vorher runter, auch wenn die 60sec Batterielaufzeit noch nicht erreicht wurden.
Falls du eine richtige Notstromversorgung ala Dieselgenerator hast, würde man das TIMEOUT auf die Zeit setzen, die das Aggregat bis zur Spannungsübernahme braucht. Bei derart versorgten Einrichtungen fährt man die Server eigentlich auch nicht mehr runter und geht davon aus, das die Generatoren bis zur Rückkehr der Hauptversorgung einfach weiterlaufen. Richtig grosse Systeme mit mehreren 100 laufenden VMs kannst du nicht einfach mal so runterfahren, wobei wohl eher nicht das Runterfahren sondern das nachfolgende Hochfahren und die damit eingehende Überlastung zum Problem wird.
Dateianhänge
apccontrol.bat.txt
(6.09 KiB) 141-mal heruntergeladen
apcupsd.conf.txt
(12.88 KiB) 144-mal heruntergeladen

Member
Beiträge: 36
Registriert: 24.05.2018, 11:07

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Syosse » 29.05.2018, 11:39

Dayworker hat geschrieben:Ich hab dir mal meine Settings hochgeladen...

In der apccontrol.bat habe ich ab 162 zu stehen:

Code: Alles auswählen

rem   %SHUTDOWN% -h now
C:\apcupsd\etc\apcupsd\plink root@esxi -pw esxi halt > c:\apcupsd\etc\doshutdown.log 2>&1
exit /b 99
   GOTO :done
Damit bekommt mein ESXi-5.5 die Anweisung anzuhalten und das Log zu befüllen. Die exit-Zeile war (ist?) unter Linux nötig, damit der apcupsd-Rechner nicht einfach nur schnell Runterfährt, sondern über das Script auch den ESXi vorher noch antriggert. Ich habe die Einstellungen direkt von Linux übernommen und soweit beibehalten. Die restliche "apccontrol.bat" habe ich unverändert gelassen, weil die restliche Config in apcupsd.CONF-Datei abgewickelt wird.

Code: Alles auswählen

# ======== Configuration parameters used during power failures ==========
#

# The ONBATTERYDELAY is the time in seconds from when a power failure
#   is detected until we react to it with an onbattery event.
#
#   This means that, apccontrol will be called with the powerout argument
#   immediately when a power failure is detected.  However, the
#   onbattery argument is passed to apccontrol only after the
#   ONBATTERYDELAY time.  If you don't want to be annoyed by short
#   powerfailures, make sure that apccontrol powerout does nothing
#   i.e. comment out the wall.
ONBATTERYDELAY 6

#
# Note: BATTERYLEVEL, MINUTES, and TIMEOUT work in conjunction, so
# the first that occurs will cause the initation of a shutdown.
#

# If during a power failure, the remaining battery percentage
# (as reported by the UPS) is below or equal to BATTERYLEVEL,
# apcupsd will initiate a system shutdown.
BATTERYLEVEL 50

# If during a power failure, the remaining runtime in minutes
# (as calculated internally by the UPS) is below or equal to MINUTES,8
# apcupsd, will initiate a system shutdown.
MINUTES 10

# If during a power failure, the UPS has run on batteries for TIMEOUT
# many seconds or longer, apcupsd will initiate a system shutdown.
# A value of 0 disables this timer.
#
#  Note, if you have a Smart UPS, you will most likely want to disable
#    this timer by setting it to zero. That way, you UPS will continue
#    on batteries until either the % charge remaing drops to or below BATTERYLEVEL,
#    or the remaining battery runtime drops to or below MINUTES.  Of course,
#    if you are testing, setting this to 60 causes a quick system shutdown
#    if you pull the power plug.   
#  If you have an older dumb UPS, you will want to set this to less than
#    the time you know you can run on batteries.
TIMEOUT 60
Wenn die USV 1min (TIMEOUT 60) auf Batterie gelaufen ist, war hier meist etwas grösseres passiert und daher soll meine USV dann einfach runterfahren. Ist das Batterielevel unter 50 Prozent (BATTERYLEVEL 50) oder ist die Restlaufzeit der Batterie unter 10min (MINUTES 10), was eine alternde Batterie mit einbezieht, fährt die USV den ESXi schon vorher runter, auch wenn die 60sec Batterielaufzeit noch nicht erreicht wurden.
Falls du eine richtige Notstromversorgung ala Dieselgenerator hast, würde man das TIMEOUT auf die Zeit setzen, die das Aggregat bis zur Spannungsübernahme braucht. Bei derart versorgten Einrichtungen fährt man die Server eigentlich auch nicht mehr runter und geht davon aus, das die Generatoren bis zur Rückkehr der Hauptversorgung einfach weiterlaufen. Richtig grosse Systeme mit mehreren 100 laufenden VMs kannst du nicht einfach mal so runterfahren, wobei wohl eher nicht das Runterfahren sondern das nachfolgende Hochfahren und die damit eingehende Überlastung zum Problem wird.



Vielen Dank für die Configs.


Ich habe die soeben angepasst apccontrol.bat :

Code: Alles auswählen

rem   %SHUTDOWN% -h now
C:\apcupsd\etc\apcupsd\plink root@192.168.1.10  -pw srvvmware  halt > c:\apcupsd\etc\doshutdown.log 2>&1
exit /b 99
   GOTO :done


Bei apcupsd.conf habe ich folgendes eingestellt Battery % 75 und 3Minuten Runtime :

Code: Alles auswählen

# The ONBATTERYDELAY is the time in seconds from when a power failure
#   is detected until we react to it with an onbattery event.
#
#   This means that, apccontrol will be called with the powerout argument
#   immediately when a power failure is detected.  However, the
#   onbattery argument is passed to apccontrol only after the
#   ONBATTERYDELAY time.  If you don't want to be annoyed by short
#   powerfailures, make sure that apccontrol powerout does nothing
#   i.e. comment out the wall.
ONBATTERYDELAY 6

#
# Note: BATTERYLEVEL, MINUTES, and TIMEOUT work in conjunction, so
# the first that occurs will cause the initation of a shutdown.
#

# If during a power failure, the remaining battery percentage
# (as reported by the UPS) is below or equal to BATTERYLEVEL,
# apcupsd will initiate a system shutdown.
BATTERYLEVEL 75

# If during a power failure, the remaining runtime in minutes
# (as calculated internally by the UPS) is below or equal to MINUTES,
# apcupsd, will initiate a system shutdown.
MINUTES 3

# If during a power failure, the UPS has run on batteries for TIMEOUT
# many seconds or longer, apcupsd will initiate a system shutdown.
# A value of 0 disables this timer.
#
#  Note, if you have a Smart UPS, you will most likely want to disable
#    this timer by setting it to zero. That way, you UPS will continue
#    on batteries until either the % charge remaing drops to or below BATTERYLEVEL,
#    or the remaining battery runtime drops to or below MINUTES.  Of course,
#    if you are testing, setting this to 60 causes a quick system shutdown
#    if you pull the power plug.   
#  If you have an older dumb UPS, you will want to set this to less than
#    the time you know you can run on batteries.
TIMEOUT 0

#  Time in seconds between annoying users to signoff prior to
#  system shutdown. 0 disables.
ANNOY 300

# Initial delay after power failure before warning users to get
# off the system.
ANNOYDELAY 60

# The condition which determines when users are prevented from
# logging in during a power failure.
# NOLOGON <string> [ disable | timeout | percent | minutes | always ]
NOLOGON disable

# If KILLDELAY is non-zero, apcupsd will continue running after a
# shutdown has been requested, and after the specified time in
# seconds attempt to kill the power. This is for use on systems
# where apcupsd cannot regain control after a shutdown.
# KILLDELAY <seconds>  0 disables
KILLDELAY 0


Sobald die Battery unter 75% erreicht kommt die Meldung Shutdown, das funktioniert nur wird die bat irgendwie nicht ausgelöst.
Den Befehl : C:\apcupsd\etc\apcupsd\plink root@192.168.1.10 -pw srvvmware halt > c:\apcupsd\etc\doshutdown.log 2>&1
Habe ich bei CMD ausgeführt und wird erfolgreich durchgeführt Esxi fährt herunter. Also liegt der fehler wo anders aber weiss nicht wo ?

King of the Hill
Beiträge: 12942
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon irix » 29.05.2018, 12:27

Ich kenne plink nicht sondern nur putty und pscp aus dem taeglichen Gebrauch. Beim erstmaligen Aufruf schreibt er den PublicKey des Ziels in die Windows Registry welches man manuell bestaetigen muss. Ob es Schalter gibt um das zu erzwingen koennte man auchmal gucken.

Bin mit nicht ganz sicher ob es User bezogen ist, was ich glaube, oder Systemweit. Es kann also sein das dein plink auf die manuelle Bestaetigung wartet. Fuehre das Program einmalig als der Benutzer aus unter dem dein apcupsd laeuft.

Du kannst in die apccontrol.bat ja mal loggen lassen VOR dem Aufruf von deinem plink.


Gruss
Joerg

Member
Beiträge: 36
Registriert: 24.05.2018, 11:07

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Syosse » 29.05.2018, 13:20

irix hat geschrieben:Ich kenne plink nicht sondern nur putty und pscp aus dem taeglichen Gebrauch. Beim erstmaligen Aufruf schreibt er den PublicKey des Ziels in die Windows Registry welches man manuell bestaetigen muss. Ob es Schalter gibt um das zu erzwingen koennte man auchmal gucken.

Bin mit nicht ganz sicher ob es User bezogen ist, was ich glaube, oder Systemweit. Es kann also sein das dein plink auf die manuelle Bestaetigung wartet. Fuehre das Program einmalig als der Benutzer aus unter dem dein apcupsd laeuft.

Du kannst in die apccontrol.bat ja mal loggen lassen VOR dem Aufruf von deinem plink.


Gruss
Joerg



Plink ist Putty (Siehe Bild), das apucupsd läuft immer nur auf dem Benutzer (Netzwerkadmin).
Habe aber nochmals mit Putty.exe versucht klappt leider auch nicht.

Du kannst in die apccontrol.bat ja mal loggen lassen VOR dem Aufruf von deinem plink.


Wie meinst du das, die datei apccontrol.bat selber öffnen ?

Vielen Dank für deine Hilfe.

PT.PNG

King of the Hill
Beiträge: 12942
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon irix » 29.05.2018, 13:30

Du sollst das plink nicht austauschen gegen Putty sondern sorge tragen das plink seinen Eintrag in die Registry machen kann. Somit mach eine Shell als "Netzwerkadmin" auf und setze dein Kommando ab. Alternativ verwende die offizellen APIs wie PowerCLI oder vSphere CLI(Perl). Ich wuerde die Powershell variante nehmen.

Deine Aenderungen da ab Zeile 162:

echo "trigger Shutdown with plink...." >> c:\windows\temp\foobar.log

Gruss
Joerg

King of the Hill
Beiträge: 13561
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Dayworker » 29.05.2018, 13:51

Ups, "irix" hat vollkommen recht. :oops:
Wenn man sich per SSH, plink, putty whatever zum ersten Mal auf den ESXi schaltet, muß man den Public-Key bestätigen. Verwendet man dafür einen besonderen Account, muß die Verbindung in diesem Kontext erfolgen. Ich habe mir dann einfach das root-Verzeichnis auf dem ESXi anzeigen lassen:

Code: Alles auswählen

C:\apcupsd\etc\apcupsd\plink root@esxi -pw esxi "ls -alh"

Dann kannst du in Ruhe einen Testlauf planen und den ESXi worüber auch immer wie im Ernstfall "anhalten"...

King of the Hill
Beiträge: 12942
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon irix » 29.05.2018, 14:31

Dayworker hat geschrieben:Ups, "irix" hat vollkommen recht. :oops:
... muß man den Public-Key bestätigen.


Sinn und Zweck ist es das putty und co. bei jedem Aufruf den Key mit dem in der Registry hinterlegten vergleichen und bei einer Nichtuebereinstimmung die Verarbeitung abbrechen und eine dicke Warnung ausgeben.

Eine DOS Shell als System bzw. Network zu starten ist garnicht so einfach und haengt auch ein bisschen vom Windows ab bzw. was man an Zusatztools hat. Es ist aber moeglich :)

Gruss
Joerg

Member
Beiträge: 36
Registriert: 24.05.2018, 11:07

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Syosse » 29.05.2018, 14:42

irix hat geschrieben:
Dayworker hat geschrieben:Ups, "irix" hat vollkommen recht. :oops:
... muß man den Public-Key bestätigen.


Sinn und Zweck ist es das putty und co. bei jedem Aufruf den Key mit dem in der Registry hinterlegten vergleichen und bei einer Nichtuebereinstimmung die Verarbeitung abbrechen und eine dicke Warnung ausgeben.

Eine DOS Shell als System bzw. Network zu starten ist garnicht so einfach und haengt auch ein bisschen vom Windows ab bzw. was man an Zusatztools hat. Es ist aber moeglich :)

Gruss
Joerg



Hab den Befehl auch durchgeführt bzw eingefügt :

Code: Alles auswählen

start C:\apcupsd\etc\apcupsd\plink root@192.168.55.15 -pw Lastwagen1. "ls -alh"


Bei CMD zeigt er mir die Root verzeichnis, aber eben wieder bei appcontrol.bat funzt das nicht.
Mene nerven sind langsam am ende :lol: ich versuch jetzt mal mit dem PowerCli

Somit mach eine Shell als "Netzwerkadmin" auf und setze dein Kommando ab echo "trigger Shutdown with plink...." >> c:\windows\temp\foobar.log


Weil da wird ich auch nicht so schlau.

Danke dir!

King of the Hill
Beiträge: 12942
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon irix » 29.05.2018, 14:57

Syosse hat geschrieben:

Code: Alles auswählen

start C:\apcupsd\etc\apcupsd\plink root@192.168.55.15 -pw Lastwagen1. "ls -alh"


Bei CMD zeigt er mir die Root verzeichnis, aber eben wieder bei appcontrol.bat funzt das nicht.


Nochmal langsam zum mitschreiben.... das plink wartet drauf das einer die Entertaste drueckt um einmalig den Public Key zu akzeptieren.

Somit mach eine Shell als "Netzwerkadmin" auf und setze dein Kommando ab echo "trigger Shutdown with plink...." >> c:\windows\temp\foobar.log


Code: Alles auswählen

echo "trigger Shutdown with plink...." >> c:\windows\temp\foobar.log
start C:\apcupsd\etc\apcupsd\plink root@192.168.55.15 -pw Lastwagen1. "ls -alh"



Dann siehst du zumind. das deine Prozedur aufgerufen wird.

Gruss
Joerg

Member
Beiträge: 36
Registriert: 24.05.2018, 11:07

Re: APC USV Zeitverzögert Meldung senden (On Battery)

Beitragvon Syosse » 29.05.2018, 15:04

irix hat geschrieben:
Syosse hat geschrieben:

Code: Alles auswählen

start C:\apcupsd\etc\apcupsd\plink root@192.168.55.15 -pw Lastwagen1. "ls -alh"


Bei CMD zeigt er mir die Root verzeichnis, aber eben wieder bei appcontrol.bat funzt das nicht.


Nochmal langsam zum mitschreiben.... das plink wartet drauf das einer die Entertaste drueckt um einmalig den Public Key zu akzeptieren.

Somit mach eine Shell als "Netzwerkadmin" auf und setze dein Kommando ab echo "trigger Shutdown with plink...." >> c:\windows\temp\foobar.log


Code: Alles auswählen

echo "trigger Shutdown with plink...." >> c:\windows\temp\foobar.log
start C:\apcupsd\etc\apcupsd\plink root@192.168.55.15 -pw Lastwagen1. "ls -alh"



Dann siehst du zumind. das deine Prozedur aufgerufen wird.

Gruss
Joerg



Super Danke versuche es gleich nochmal :

Hab noch was anders gemacht, ich habe zuoberst bei der Batch Datei den Befehl :

Code: Alles auswählen

C:\apcupsd\etc\apcupsd\plink root@192.168.1.10  -pw srvvmware  halt > c:\apcupsd\etc\doshutdown.log 2>&1
exit /b 99
   GOTO :done


eingefügt und die batch ausgeführt und siehe da die vmware schaltet sich ab. Nur mit der apcupsd klappts nicht wenn ich den Strom unterbreche.

Code: Alles auswählen


start C:\apcupsd\etc\apcupsd\plink root@esxi -pw esxi halt > c:\apcupsd\etc\doshutdown.log 2>&1
@echo off
setlocal

rem
rem  This is the Windows apccontrol file.
rem

rem Assign parameters to named variables
SET command=%1
SET sbindir=%5

rem Strip leading and trailing quotation marks from paths.
rem This is easily accomplished on NT, but Win95/98/ME
rem require an evil little trick with 'FOR'.
SET sbindir=%sbindir:"=%
IF "%sbindir%" == "" FOR %%A IN (%5) DO SET sbindir=%%A

rem Paths to important executables
SET APCUPSD="%sbindir%\apcupsd"
SET SHUTDOWN="%sbindir%\shutdown"
SET BACKGROUND="%sbindir%\background"

rem Only do popups on Win95/98/ME/NT. All other platforms support
rem balloon notifications which are provided by apctray.
SET POPUP=echo
VER | FIND /I "Windows 95" > NUL
IF NOT ERRORLEVEL 1 SET POPUP=%BACKGROUND% "%sbindir%\popup"
VER | FIND /I "Windows 98" > NUL
IF NOT ERRORLEVEL 1 SET POPUP=%BACKGROUND% "%sbindir%\popup"
VER | FIND /I "Windows ME" > NUL
IF NOT ERRORLEVEL 1 SET POPUP=%BACKGROUND% "%sbindir%\popup"
VER | FIND /I "Windows NT" > NUL
IF NOT ERRORLEVEL 1 SET POPUP=%BACKGROUND% "%sbindir%\popup"

rem
rem This piece is to substitute the default behaviour with your own script,
rem   perl, C program, etc.
rem
rem You can customize any command by creating an executable file (may be a
rem   script or a compiled program) and naming it the same as the %1 parameter
rem   passed by apcupsd to this script. We will accept files with any extension
rem   included in PATHEXT (*.exe, *.bat, *.cmd, etc).
rem
rem After executing your script, apccontrol continues with the default action.
rem   If you do not want apccontrol to continue, exit your script with exit
rem   code 99. E.g. "exit /b 99".
rem
rem WARNING: please be aware that if you add any commands before the shutdown
rem   in the downshutdown) case and your command errors or stalls, it will
rem   prevent your machine from being shutdown, so test, test, test to
rem   make sure it works correctly.
rem
rem The apccontrol.bat file will be replaced every time apcupsd is installed,
rem   so do NOT make event modifications in this file. Instead, override the
rem   event actions using event scripts as described above.
rem

rem Use CALL here because event script might be a batch file itself
CALL ".\%command%" 2> NUL

rem This is retarded. "IF ERRORLEVEL 99" means greater-than-or-
rem equal-to 99, so we have to synthesize an == using two IFs.
rem Ahh, the glory of Windows batch programming. At least they
rem gave us a NOT op.
IF NOT ERRORLEVEL 99 GOTO :events
IF NOT ERRORLEVEL 100 GOTO :done

:events

rem
rem powerout, onbattery, offbattery, mainsback events occur
rem   in that order.
rem

IF "%command%" == "commfailure"   GOTO :commfailure
IF "%command%" == "commok"        GOTO :commok
IF "%command%" == "powerout"      GOTO :powerout
IF "%command%" == "onbattery"     GOTO :onbattery
IF "%command%" == "offbattery"    GOTO :offbattery
IF "%command%" == "mainsback"     GOTO :mainsback
IF "%command%" == "failing"       GOTO :failing
IF "%command%" == "timeout"       GOTO :timeout
IF "%command%" == "loadlimit"     GOTO :loadlimit
IF "%command%" == "runlimit"      GOTO :runlimit
IF "%command%" == "doshutdown"    GOTO :doshutdown
IF "%command%" == "annoyme"       GOTO :annoyme
IF "%command%" == "emergency"     GOTO :emergency
IF "%command%" == "changeme"      GOTO :changeme
IF "%command%" == "remotedown"    GOTO :remotedown
IF "%command%" == "startselftest" GOTO :startselftest
IF "%command%" == "endselftest"   GOTO :endselftest
IF "%command%" == "battdetach"    GOTO :battdetach
IF "%command%" == "battattach"    GOTO :battattach

echo Unknown command '%command%'
echo.
echo Usage: %0 command
echo.
echo Warning: this script is intended to be launched by
echo apcupsd and should never be launched by users.
GOTO :done

:commfailure
   %POPUP% "Communications with UPS lost."
   GOTO :done

:commok
   %POPUP% "Communciations with UPS restored."
   GOTO :done

:powerout
   GOTO :done

:onbattery
   %POPUP% "Power failure. Running on UPS batteries."
   GOTO :done

:offbattery
   %POPUP% "Power has returned. No longer running on UPS batteries."
   GOTO :done

:mainsback
   GOTO :done

:failing
   %POPUP% "UPS battery power exhausted. Doing shutdown."
   GOTO :done

:timeout
   %POPUP% "UPS battery runtime limit exceeded. Doing shutdown."
   GOTO :done

:loadlimit
   %POPUP% "UPS battery discharge limit reached. Doing shutdown."
   GOTO :done

:runlimit
   %POPUP% "UPS battery runtime percent reached. Doing shutdown."
   GOTO :done

:doshutdown
rem
rem  If you want to try to power down your UPS, uncomment
rem    out the following lines, but be warned that if the
rem    following shutdown -h now doesn't work, you may find
rem    the power being shut off to a running computer :-(
rem  Also note, we do this in the doshutdown case, because
rem    there is no way to get control when the machine is
rem    shutdown to call this script with --killpower. As
rem    a consequence, we do both killpower and shutdown
rem    here.
rem  Note that Win32 lacks a portable way to delay for a
rem    given time, so we use the trick of pinging a
rem    non-existent IP address with a given timeout.
rem
rem   %APCUPSD% /kill
rem   ping -n 1 -w 5000 10.255.255.254 > NUL
rem   %POPUP% "Doing %APCUPSD% --killpower"
rem   %APCUPSD% --killpower
rem   ping -n 1 -w 12000 10.255.255.254 > NUL
rem
rem   %SHUTDOWN% -h now
C:\apcupsd\etc\apcupsd\plink root@esxi -pw esxi halt > c:\apcupsd\etc\doshutdown.log 2>&1
exit /b 99
   GOTO :done

:annoyme
   %POPUP% "Power problems: please logoff."
   GOTO :done

:emergency
   %POPUP% "Emergency shutdown initiated."
   GOTO :done

:changeme
   %POPUP% "Emergency! UPS batteries have failed: Change them NOW"
   GOTO :done

:remotedown
   %POPUP% "Shutdown due to master state or comms lost."
   GOTO :done

:startselftest
   %POPUP% "Self-test starting"
   GOTO :done

:endselftest
   %POPUP% "Self-test completed"
   GOTO :done

:battdetach
   %POPUP% "Battery disconnected"
   GOTO :done

:battattach
   %POPUP% "Battery reattached"
   GOTO :done

:done
rem That's all, folks




Wieso klappt es den nun wenn ich die Batch öffne, da braucht der plink ja auch keine bestätigung.

Edit:

Code: Alles auswählen

echo "trigger Shutdown with plink...." >> C:\apcupsd\etc\apcupsd\foobar.log
start C:\apcupsd\etc\apcupsd\plink root@192.168.55.15 -pw Lastwagen1. "ls -alh"


So hab das gemacht, leider noch keine Datei erstellt.


Zurück zu „vSphere 6.7“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste