Pruefwerkzeuge Trading Plattform: Abendkontrolle vom Docker-Host (Paket DH), abgedichtete Angriffstreiber; plankritik.js auf LF
- abendkontrolle.py: --quelle und --quelle-ibkr (Vorgabe wsl wie bisher, dockerhost liest das Ergebnis des Hosts ueber SSH), fahre_dockerhost - abendkontrolle_wsl.py: --ibkr-python fuer ibkr_pruefen.py im Container - abendkontrolle_einrichten.ps1: -Quelle und -QuelleIbkr, 23:15 sobald ein Teil vom Host kommt - neue Angriffstreiber abendkontrolle_dockerhost_angriffe.py und abendkontrolle_ibkr_python_angriffe.py - Abdichtung gegen echte WSL- und SSH-Wege in den Treibern, auch in abendkontrolle_angriffe.py und rueckweg_aapl_angriffe.py (nach dem ntfy-Vorfall eines Mutanten am 2026-09-26) - LIESMICH: Abschnitt Paket DH - .claude/workflows/plankritik.js: LF statt CRLF (das CR war die Ursache von "script contains control characters"), meta gekuerzt, Einzelheiten im Kommentar Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
c115a13190
commit
59087fb235
9 files changed
+588
-16
No files matched your search
@@ -2,16 +2,27 @@
|
||||
# Koordinator-Werkzeug, nicht fuers Repo. Auftrag Pascal 2026-09-24: taegliche Abendkontrolle,
|
||||
# dauerhaft, uebersteht Neustarts, blockiert keine Updates von Claude Code oder Desktop.
|
||||
#
|
||||
# Zwei Ausloeser: werktags 22:45 (nach der Tagesauswertung um 22:20) und fuenf Minuten nach jeder
|
||||
# Anmeldung (holt einen verpassten Abend nach; abendkontrolle.py prueft nur Tage ohne Ergebnisdatei).
|
||||
# Zwei Ausloeser: werktags 22:45 (nach der Tagesauswertung um 22:20) oder statt dessen 23:15, sobald ein Teil vom
|
||||
# Docker-Host kommt (-Quelle oder -QuelleIbkr dockerhost, seit Paket DH), und fuenf Minuten nach
|
||||
# jeder Anmeldung (holt einen verpassten Abend nach; abendkontrolle.py prueft nur Tage ohne
|
||||
# Ergebnisdatei).
|
||||
# Nur bei angemeldetem Benutzer (Interactive): WSL und der ganze Paper-Betrieb brauchen die Anmeldung
|
||||
# ohnehin (Aufgabe "Trading Plattform - WSL wachhalten"). pythonw.exe startet ohne Fenster.
|
||||
# Voller Interpreterpfad: -Execute "python" endet in der Aufgabenplanung mit 0x80070002.
|
||||
#
|
||||
# Aufruf: powershell -NoProfile -File abendkontrolle_einrichten.ps1 [-Aktion einrichten|entfernen]
|
||||
# [-Quelle wsl|dockerhost] [-QuelleIbkr wsl|dockerhost]
|
||||
param(
|
||||
[ValidateSet("einrichten", "entfernen")]
|
||||
[string]$Aktion = "einrichten"
|
||||
[string]$Aktion = "einrichten",
|
||||
# Seit Paket DH: wsl (Vorgabe) prueft in WSL wie bisher; dockerhost liest das Ergebnis des
|
||||
# Docker-Hosts ueber SSH, werktags erst um 23:15 (der Host prueft um 16:30 New Yorker Zeit).
|
||||
[ValidateSet("wsl", "dockerhost")]
|
||||
[string]$Quelle = "wsl",
|
||||
# Die Quelle fuer den Teil ibkr; ohne Angabe dieselbe wie -Quelle. Die IBKR-Instanz zieht an
|
||||
# einem eigenen Abend um (Umzugs-Drehbuch DH, Phase 7).
|
||||
[ValidateSet("wsl", "dockerhost")]
|
||||
[string]$QuelleIbkr
|
||||
)
|
||||
|
||||
$Name = "Trading Plattform - Abendkontrolle"
|
||||
@@ -26,8 +37,10 @@ if (-not (Test-Path $Py)) { throw "Interpreter fehlt: $Py" }
|
||||
if (-not (Test-Path $Skript)) { throw "Skript fehlt: $Skript" }
|
||||
|
||||
$Benutzer = "$env:USERDOMAIN\$env:USERNAME"
|
||||
$Aufruf = New-ScheduledTaskAction -Execute $Py -Argument ('"' + $Skript + '"') -WorkingDirectory "D:\Claude"
|
||||
$Abends = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday, Tuesday, Wednesday, Thursday, Friday -At "22:45"
|
||||
if (-not $QuelleIbkr) { $QuelleIbkr = $Quelle }
|
||||
$Aufruf = New-ScheduledTaskAction -Execute $Py -Argument ('"' + $Skript + '" --quelle ' + $Quelle + ' --quelle-ibkr ' + $QuelleIbkr) -WorkingDirectory "D:\Claude"
|
||||
if ($Quelle -eq "dockerhost" -or $QuelleIbkr -eq "dockerhost") { $Uhrzeit = "23:15" } else { $Uhrzeit = "22:45" }
|
||||
$Abends = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday, Tuesday, Wednesday, Thursday, Friday -At $Uhrzeit
|
||||
$Anmeldung = New-ScheduledTaskTrigger -AtLogOn -User $Benutzer
|
||||
$Anmeldung.Delay = "PT5M"
|
||||
$Wer = New-ScheduledTaskPrincipal -UserId $Benutzer -LogonType Interactive -RunLevel Limited
|
||||
@@ -41,3 +54,4 @@ $Aufgabe = Get-ScheduledTask -TaskName $Name
|
||||
"{0}: {1}" -f $Aufgabe.TaskName, $Aufgabe.State
|
||||
$Aufgabe.Triggers | ForEach-Object { "Ausloeser: {0} {1} {2}" -f $_.CimClass.CimClassName, $_.StartBoundary, $_.Delay }
|
||||
"Naechster Lauf: {0}" -f (Get-ScheduledTaskInfo -TaskName $Name).NextRunTime
|
||||
"Quellen: {0} (alpaca), {1} (ibkr)" -f $Quelle, $QuelleIbkr
|
||||
Reference in new issue
Block a user