Update.bat: Unterschied zwischen den Versionen
(Powershell-Skript von Emploi eingefügt) |
|||
Zeile 47: | Zeile 47: | ||
Wenn mehrere Rechner und Instanzen verwendet werden, reicht es aus, dass eine einzige update.bat für alle Rechner und Instanzen arbeitet. | Wenn mehrere Rechner und Instanzen verwendet werden, reicht es aus, dass eine einzige update.bat für alle Rechner und Instanzen arbeitet. | ||
+ | |||
+ | == Powershell-Skript == | ||
+ | Als Datei ''update.ps1'' abgespeichert und dann Rechtsklick auf die Datei und ''Mit Powershell ausführen'': | ||
+ | <nowiki> | ||
+ | $DLY=190 #project delay | ||
+ | $PEN=30 #penetration interval | ||
+ | $KYW='downloading' #keyword in tasklist | ||
+ | $PRJ='http://www.worldcommunitygrid.org/' #project url | ||
+ | $PBC='C:\Program Files\BOINC\boinccmd.exe' #path to boinc+command | ||
+ | Do{$D = (Get-Date).ToString("dd.MM.yyyy HH:mm:ss :") #timestamp | ||
+ | .$PBC --network_available | ||
+ | .$PBC --project $PRJ update time /t | ||
+ | $M = .$PBC --get_tasks | Select-String -Pattern $KYW | ||
+ | if ($M.Count -gt 0) { | ||
+ | Write-Host "$D Naechster Versuch in $PEN Sekunden fuer $PRJ" | ||
+ | timeout $PEN | ||
+ | } | ||
+ | else { Write-Host "$D Auf Arbeit warten! Verzoegerung: $DLY Sekunden in Projekt $PRJ" | ||
+ | timeout $DLY | ||
+ | } | ||
+ | } | ||
+ | Until (0) | ||
+ | </nowiki> | ||
=== Linux === | === Linux === |
Version vom 24. September 2022, 22:59 Uhr
Bei manchen Projekten kommt man nicht umhin, bei der Workunit-Anforderung nachzuhelfen.
Dies erfolgt am einfachsten mit einer ausführbaren Datei, oder im Falle von Linux, mit einer Komandozeile.
Windows
Den Texteditor öffnen und folgenden Inhalt, hier beispielhaft für das Projekt TN-Gird, einfügen:
cls :START echo off time /t timeout 122 "C:\Programme\Boinc\boinccmd.exe" --project http://gene.disi.unitn.it/test/ update GOTO START
Danach die Datei mit dem Namen "Update.bat" im Verzeichnis: C:\ProgramData\BOINC\ abspeichern.
Darauf achten, dass die Datei nicht "Update.bat.txt" heißt.
Datei mit Doppelklick starten, beenden mit Strg+C und mit j bestätigen.
Mit Rechtsklick läßt sich natürlich auch eine Verknüpfung anlegen.
Die Zahl hinter "timeout" ist in Sekunden, wie lange pausiert werden soll, bis die nächste Anfrage ans Projekt erfolgt.
Diese Zeitspanne ist von Projekt zu Projekt unterschiedlich.
Sollte der Upload hängen, kann mit dieser weiteren Zeile der Upload erneut angestoßen werden:
"C:\Programme\Boinc\boinccmd.exe" --network_available
Wer mit Instanzen arbeitet, nimmt folgendes, und paßt es an:
@echo off cls :START "%ProgramFiles%\BOINC\boinccmd.exe" --host 127.0.0.1:9001 --passwd p3d --network_available "%ProgramFiles%\BOINC\boinccmd.exe" --host 127.0.0.1:9001 --passwd p3d --project http://gene.disi.unitn.it/test/ update "%ProgramFiles%\BOINC\boinccmd.exe" --host 127.0.0.1:9002 --passwd p3d --network_available "%ProgramFiles%\BOINC\boinccmd.exe" --host 127.0.0.1:9002 --passwd p3d --project http://gene.disi.unitn.it/test/ update time /t timeout 15 GOTO START
Wenn mehrere Rechner und Instanzen verwendet werden, reicht es aus, dass eine einzige update.bat für alle Rechner und Instanzen arbeitet.
Powershell-Skript
Als Datei update.ps1 abgespeichert und dann Rechtsklick auf die Datei und Mit Powershell ausführen:
$DLY=190 #project delay $PEN=30 #penetration interval $KYW='downloading' #keyword in tasklist $PRJ='http://www.worldcommunitygrid.org/' #project url $PBC='C:\Program Files\BOINC\boinccmd.exe' #path to boinc+command Do{$D = (Get-Date).ToString("dd.MM.yyyy HH:mm:ss :") #timestamp .$PBC --network_available .$PBC --project $PRJ update time /t $M = .$PBC --get_tasks | Select-String -Pattern $KYW if ($M.Count -gt 0) { Write-Host "$D Naechster Versuch in $PEN Sekunden fuer $PRJ" timeout $PEN } else { Write-Host "$D Auf Arbeit warten! Verzoegerung: $DLY Sekunden in Projekt $PRJ" timeout $DLY } } Until (0)
Linux
Konsole im Verzeichnis: /var/lib/boinc-client/ mit Strg+Alt+T öffnen und folgenden Inhalt, hier beispielhaft für das Projekt TN-Grid, einfügen:
while true; do boinccmd --project http://gene.disi.unitn.it/test/ update; sleep 122; done
Wer mit Instanzen arbeitet, braucht nur --host 127.0.0.1:xxxx einsetzen. Die xxxx stehen für den Namen der Instanz. Im folgendem Beispiel hat die Instanz die laufende Nummer 31417. Das Passwort anpassen nach Inhalt der gui_rpc_auth.cfg
while true; do boinccmd --host 127.0.0.1:31417 --passwd p3d --project http://gene.disi.unitn.it/test/ update; sleep 122; done
Mit Enter ausführen, und mit Strg+C beenden.
Der Eintrag hinter "sleep" ist analog zu "timeout".