Czech National Team

Týmové fórum
Právě je čtv 18 led, 2018 22:47

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 5 ] 
Autor Zpráva
PříspěvekNapsal: pát 06 led, 2012 12:28 
Offline Stats
Admin webu a fóra CNT
Admin webu a fóra CNT
Uživatelský avatar

Registrován: čtv 29 bře, 2007 09:41
Příspěvky: 9466
Bydliště: Brušperk, 48 let
ID CNT statistik: 1
Taky vám některé jednotky (většina) skončí na "Chyba při přijimání" (nebo tak nějak podobně)? Předpokládám že ano 45hh .

Chová se to tak, že např na 4-core se stáhnou 4 jednotky, z toho 1 se úspěšně začne počítat a ostatní zahlásí chybu při stahování. Toto samozřejmě neovlivním, ale následující chování je takové, že po dopočítání té jedné úspěšné jednotky nedojde k odeslání ale na něco se čeká :smt102 , jakmile však chybé jednotky ručně zruším, okamžitě dojde k odeslání jednotek a k příjmu nových.
Tak jsem si říkal že proč to rušit ručně když to může dopředu zušit nějaký skript který se dá do Naplánovaných úloh a bude se automaticky spouštět např. co 1 hodinu.

Je napsáno v JScriptu ... skriptovací jazyk (nadstavba nad JavaScriptem) ... pro windows (pro linux je to třeba přepsat do shellu nebo do perlu)

Verze pro Windows
nazval jsem to boinc_abort_wus.js v popisu je napsáno co s tím
Kód:
/*!
    Autor : Vit Kliber, Czech National Team o.s.
Vytvoreno : 06.01.2012
    Nazev : boinc_abort_wus.js
    Popis : Zrusi chybne BOINC jednotky projektu FreeHAL.
            Nutno umistit do stejneho adresare kde se nachazi boinccmd a z tohoto adresare take spoustet
            Podle verze BOINC je nutne zmenit hodnoty promenych boinc_prikaz a abort_prikaz :
            zakomentovat/odkomentovat prislusne radky
*/

// prikaz pro zjisteni aktualnich jednotek v BOINC
// var boinc_prikaz = "boinccmd.exe --get_results"; // Verze BOINC <  6.12
var boinc_prikaz = "boinccmd.exe --get_tasks";   // Verze BOINC >= 6.12

// prikaz pro zruseni jednotky
// var abort_prikaz = "boinccmd.exe --result"; // Verze BOINC <  6.12
var abort_prikaz = "boinccmd.exe --task";   // Verze BOINC >= 6.12

// adresa projektu
var projekt      = "http://www.freehal.net/freehal_at_home/";

// 1 = Debug ON, 0 = Debug OFF
var debug_code   = 0;

// pro zobrazeni hlaseni pri vyvoji
function alert(text)
{
  if (debug_code != 0)
  {
    return (new ActiveXObject("WScript.Shell")).Popup(text, 0, WScript.ScriptName, 64);
  }
}

var objekt_shell = new ActiveXObject("WScript.Shell");
var objekt_exec  = objekt_shell.Exec(boinc_prikaz);
var text_vystup  = objekt_exec.StdOut.ReadAll();
var pole_vystup  = new Array();
text_vystup = text_vystup + '\n' + "X) -----------" + '\n';
pole_vystup = text_vystup.split('\n');
var nazev  = "";
var navrat = "";
var ano    = 0;

for(
var i = 0; i < pole_vystup.length; i++)
{
  if (pole_vystup[i].indexOf(") -----------") != -1)
  {
    if (ano == 1 && navrat != 0) {
      alert(abort_prikaz + " " + projekt + " " + nazev + " abort");
      var abort_exec = objekt_shell.Exec(abort_prikaz + " " + projekt + " " + nazev + " abort");
    }
    nazev  = "";
    navrat = "";
    ano    = 0;
  }
  else if (pole_vystup[i].indexOf("   name: ") != -1)
  {
    nazev = pole_vystup[i].substr(9);
  }
  else if (pole_vystup[i].indexOf("   project URL: ") != -1)
  {
    if (pole_vystup[i].indexOf("   project URL: " + projekt) != -1)
    {
      ano = 1;
    }
    else
    
{
      ano = 0;
    }
  }
  else if (pole_vystup[i].indexOf("   exit_status: ") != -1)
  {
    navrat = pole_vystup[i].substr(16);
  }
}

alert("Konec."); 

Postup zprovoznění pro Windows:
V source adresáři BOINC (to je ten kde se nachází boinc.exe) vytvořit soubor boinc_abort_wus.js a do něj zkopírovat obsah výše. Podle verze BOINC zakomentovat/odkomentovat příslušné řádky. Pro verzi BOINC nižší než 6.12 budou řádky takto :
Kód:
// prikaz pro zjisteni aktualnich jednotek v BOINC
var boinc_prikaz = "boinccmd.exe --get_results"; // Verze BOINC <  6.12
// var boinc_prikaz = "boinccmd.exe --get_tasks";   // Verze BOINC >= 6.12

// prikaz pro zruseni jednotky
var abort_prikaz = "boinccmd.exe --result"; // Verze BOINC <  6.12
// var abort_prikaz = "boinccmd.exe --task";   // Verze BOINC >= 6.12   
pro verzi BOINC větší než 6.12 včetně budou řádky takto :
Kód:
// prikaz pro zjisteni aktualnich jednotek v BOINC
// var boinc_prikaz = "boinccmd.exe --get_results"; // Verze BOINC <  6.12
var boinc_prikaz = "boinccmd.exe --get_tasks";   // Verze BOINC >= 6.12

// prikaz pro zruseni jednotky
// var abort_prikaz = "boinccmd.exe --result"; // Verze BOINC <  6.12
var abort_prikaz = "boinccmd.exe --task";   // Verze BOINC >= 6.12   

Po uložení souboru boinc_abort_wus.js na něj kliknout pravým tlačítkem myši a kliknout na "Vlastnosti". Ve vlastnostech se přepnout na kartu "Skript", zaškrtnout "Zastavit skript po:" a nastavit 10 sekund a odškrtnout "Zobrazit logo ...". Dále vytvořit zástupce ve stejném adresáři (chytnout soubor boinc_abort_wus.js pravým tlačítkem myši, posunout a pustit a stisknout "Vytvořit zde zástupce". Vytvořeného zástupce přejmenovat na boinc_abort_wus_start.js, dále na něj kliknout pravým tlačítkem a a kliknout na "Vlastnosti". Ve vlastnostech se přepnout na kartu "Zástupce", zkontrolovat jestli hodnota "Spustit v:" odpovídá adresáři ve kterém se nachází skript boinc_abort_wus.js a nastavit "Spustit:" na hodnotu "V minimalizovaném okně".
Tím je připravený skript ke spuštění. Je možno odzkoušet tak, že spustíte BOINC Manager, najdete tam chybně staženou WUs FreeHAL a pak poklepete na boinc_abort_wus_start.js. Jednotka by se měla označit jako zrušená.
Tento postup je pro WinXP, předpokládám že na Vista a 7 bude postup stejný.

Dále je nutné zařadit skript boinc_abort_wus_start.js do naplánovaných úloh ve Windows, tady se postup pro WinXP už výrazně liší od Vista a 7, proto ho nebudu podrobně popisovat. Každý ať si taky zvolí svůj časový plán. Já mám nastaveno co 20 min.


Verze pro Linux
nazval jsem to boinc_abort_wus.sh v popisu je napsáno co s tím
Kód:
#!/bin/bash
#    Autor : Vit Kliber, Czech National Team o.s.
#Vytvoreno : 09.01.2012
#    Nazev : boinc_abort_wus.sh
#    Popis : Zrusi chybne BOINC jednotky projektu FreeHAL.
#            Nutno umistit do stejneho adresare kde se nachazi boinccmd a z tohoto adresare take spoustet
#            Podle verze BOINC je nutne zmenit hodnoty promenych boinc_prikaz a abort_prikaz :
#            zakomentovat/odkomentovat prislusne radky

# prikaz pro zjisteni aktualnich jednotek v BOINC
boinc_prikaz="./boinccmd --get_results"; # Verze BOINC <  6.12
# boinc_prikaz="./boinccmd --get_tasks";   # Verze BOINC >= 6.12

# prikaz pro zruseni jednotky
abort_prikaz="./boinccmd --result"; # Verze BOINC <  6.12
# abort_prikaz="./boinccmd --task";   # Verze BOINC >= 6.12

# adresa projektu
projekt="http://www.freehal.net/freehal_at_home/";

# 1 = Debug ON, 0 = Debug OFF
debug_code="0";

# pro zobrazeni hlaseni pri vyvoji
function zprava {
  if [ "$debug_code" = "1" ]; then
    echo 
$1;
  fi
}

text_vystup=`$boinc_prikaz; echo; echo "X) -----------"; echo; `;

nazev="";
navrat="";
ano="0";

old_IFS=$IFS;
IFS=$'\n';
for i in $text_vystup
{
  if [ "$i" != "${i//) -----------/}" ]; then
    {
      if [ "
$ano" == "1" ] && [ "$navrat" != "0" ]; then
        {
          zprava $abort_prikaz" "$projekt" "$nazev" abort";
          eval $abort_prikaz" "$projekt" "$nazev" abort";
        }
      fi
      nazev="";
      navrat="";
      ano="0";
    }
  else if [ "
$i" != "${i//   name: /}" ]; then
    nazev=${i:9};
  else if [ "$i" != "${i//   project URL: /}" ]; then
    {
      if [ "
$i" != "${i//   project URL: $projekt/}" ]; then
        ano="1";
      else
        ano
="0";
      fi
    
}
  else if [ 
"$i" != "${i//   exit_status: /}" ]; then
    navrat=${i:16};
  fi
  fi
  fi
  fi
}
IFS=$old_IFS;

zprava "KONEC";
  

Postup zprovoznění pro Linux:
V source adresáři BOINC (to je ten kde se nachází spustitelný soubor boinc) vytvořit soubor boinc_abort_wus.sh a do něj zkopírovat obsah výše. Podle verze BOINC zakomentovat/odkomentovat příslušné řádky. Pro verzi BOINC nižší než 6.12 budou řádky takto :
Kód:
# prikaz pro zjisteni aktualnich jednotek v BOINC
boinc_prikaz="./boinccmd --get_results"; # Verze BOINC <  6.12
# boinc_prikaz="./boinccmd --get_tasks";   # Verze BOINC >= 6.12

# prikaz pro zruseni jednotky
abort_prikaz="./boinccmd --result"; # Verze BOINC <  6.12
# abort_prikaz="./boinccmd --task";   # Verze BOINC >= 6.12  
pro verzi BOINC větší než 6.12 včetně budou řádky takto :
Kód:
# prikaz pro zjisteni aktualnich jednotek v BOINC
# boinc_prikaz="./boinccmd --get_results"; # Verze BOINC <  6.12
boinc_prikaz="./boinccmd --get_tasks";   # Verze BOINC >= 6.12

# prikaz pro zruseni jednotky
# abort_prikaz="./boinccmd --result"; # Verze BOINC <  6.12
abort_prikaz="./boinccmd --task";   # Verze BOINC >= 6.12  

Po uložení souboru boinc_abort_wus.sh nastavit jako spustitelný chmod +x boinc_abort_wus.sh.
Tím je připravený skript ke spuštění. Je možno odzkoušet tak, že spustíte BOINC Manager, najdete tam chybně staženou WUs FreeHAL a spustíte ./boinc_abort_wus.sh. Jednotka by se měla označit jako zrušená.

Pokud má někdo jinou distribuci a bash se nenachází v /bin/bash, tak přepsat první řádek skriptu. Kde se nachází bash se zjistí příkazem whereis bash.

Pak už nezbývá než nastavit spouštění v cronu.

_________________
Statistiky CNT | Projekty CNT | Distribuované výpočty CNT | SETI CNT | Einstein CNT
.....::::: Proč se mít nejlépe, když se můžu mít čím dál tím stejně :::::.....
Moje skromná statistika tady , tady , tady nebo grafy.
˙ıɔıqɐɹʞ ʌ ǝןɐ 'ıןʇʎd ʌ ǝɔıɾɐz ǝʇɾndnʞǝu ʎpʞıu ˙˙˙


Nahoru
 Profil  
Odpovědět s citací  
PříspěvekNapsal: pát 06 led, 2012 12:39 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6370
Datum narození: 0- 0-1956
ID CNT statistik: 10124
Samozřejmě s tím mám problém také, provizorně a s velkou nechutí to řeším featurou report results immediately, jakékoli udělátko uvítám jak pro Widle, pro Linux shell.
Jenom upozorňuji, že od verze 6.12 boinccmd nezná xxx_results, ale xxx_tasks; obdobně nikoli --result, ale --task.

_________________
Prý už není krize; pořád jím plesnivé sýry, piji staré víno a jezdím v autě bez střechy.
UotD 434x
Obrázek 2xObrázek 7xObrázek 9xObrázek Obrázek
Obrázek


Nahoru
 Profil  
Odpovědět s citací  
PříspěvekNapsal: ned 08 led, 2012 23:36 
Offline Stats
Admin webu a fóra CNT
Admin webu a fóra CNT
Uživatelský avatar

Registrován: čtv 29 bře, 2007 09:41
Příspěvky: 9466
Bydliště: Brušperk, 48 let
ID CNT statistik: 1
Zaktualizoval jsem první příspěvek. Skript mi už úspěšně chodí. Zítra se pokusím přepsat pro Linux.

_________________
Statistiky CNT | Projekty CNT | Distribuované výpočty CNT | SETI CNT | Einstein CNT
.....::::: Proč se mít nejlépe, když se můžu mít čím dál tím stejně :::::.....
Moje skromná statistika tady , tady , tady nebo grafy.
˙ıɔıqɐɹʞ ʌ ǝןɐ 'ıןʇʎd ʌ ǝɔıɾɐz ǝʇɾndnʞǝu ʎpʞıu ˙˙˙


Nahoru
 Profil  
Odpovědět s citací  
PříspěvekNapsal: pon 09 led, 2012 13:32 
Offline Stats
Admin webu a fóra CNT
Admin webu a fóra CNT
Uživatelský avatar

Registrován: čtv 29 bře, 2007 09:41
Příspěvky: 9466
Bydliště: Brušperk, 48 let
ID CNT statistik: 1
Zaktualizoval jsem první příspěvek. Doplněna verze (bash) pro Linux.

_________________
Statistiky CNT | Projekty CNT | Distribuované výpočty CNT | SETI CNT | Einstein CNT
.....::::: Proč se mít nejlépe, když se můžu mít čím dál tím stejně :::::.....
Moje skromná statistika tady , tady , tady nebo grafy.
˙ıɔıqɐɹʞ ʌ ǝןɐ 'ıןʇʎd ʌ ǝɔıɾɐz ǝʇɾndnʞǝu ʎpʞıu ˙˙˙


Nahoru
 Profil  
Odpovědět s citací  
PříspěvekNapsal: úte 10 led, 2012 12:57 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6370
Datum narození: 0- 0-1956
ID CNT statistik: 10124
:smt023 :smt038
OT: mohl bys vítku aspoň trochu nasměrovat na přepsání tohoto scirptu do Wirouzích objektů? Je mi to absolutně cizí, abych pravdu řekl, téměř vůbec tvému scriptu nerozumím. NFS script jsem po několika mnoha pokusech prokoukl a úspěšně v různých verzích aplikuji na všelijaké projekty, do Winů mi zatím chybí aspoň vodítko pro další bádání.

EDIT : více zde, vkliber.

_________________
Prý už není krize; pořád jím plesnivé sýry, piji staré víno a jezdím v autě bez střechy.
UotD 434x
Obrázek 2xObrázek 7xObrázek 9xObrázek Obrázek
Obrázek


Nahoru
 Profil  
Odpovědět s citací  
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 5 ] 

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz