Piccola modifica dello script :
Qui rendiamo attiva la coda di un elenco di progetti da poter aggiungere ad un cronjob utente.
Esempio se si vuole effettuare uno switch casuale di progetti ogni tot ora o giorno o settimana
Con un qualsiasi editor di testo creare lo scipt
boinc_cron (nome casuale) e salvarlo in una directpry dedicata nella Vostra Home (Desktop , Documenti etc...)
#!/bin/bash
# Elenco Progetti e Attach (Incompleto ; vedi http://www.boincitaly.org/progetti/progetti-boinc.html )
#######################################################################
# GPU
#
# Einstein ----> http://einstein.phys.uwm.edu/
# DistRTGen ----> http://boinc.freerainbowtables.com/distrrtgen/
# GPUGrid ----> http://www.gpugrid.net/
# Milkyway ----> http://milkyway.cs.rpi.edu/milkyway/
# POEM ----> http://boinc.fzk.de/poem/
# WCG ----> http://www.worldcommunitygrid.org/
# Prime Grid ----> http://www.primegrid.com/
# MooWrapper----> http://moowrap.net/
########################################################################
#
# CPU
#
# Asteroids ----> http://asteroidsathome.net/boinc/
# Constellation ----> http://aerospaceresearch.net/constellation/
# Cosmology ----> http://www.cosmologyathome.org/
# EON2 ----> http://eon.ices.utexas.edu/eon2/
# Leiden Classical--> http://boinc.gorlaeus.net/
# LHC ----> http://lhcathomeclassic.cern.ch/sixtrack/
# SETI ----> http://setiathome.berkeley.edu/
# SimOne ----> http://mmgboinc.unimi.it/
# Correlizer ----> http://svahesrv2.bioquant.uni-heidelberg.de/correlizer/
# Docking ----> http://docking.cis.udel.edu/
# Fightmalaria ----> http://boinc.ucd.ie/fmah/
# The Lattice Proj--> http://boinc.umiacs.umd.edu/
# Malariacontrol.net> http://www.malariacontrol.net/
# RNAWorld ----> http://www.rnaworld.de/rnaworld/
# Rosetta ----> http://boinc.bakerlab.org/rosetta/
# SIMAP ----> http://boincsimap.org/boincsimap/
# Collatz Conjecture> http://boinc.thesonntags.com/collatz/
# SubSetSum ----> http://volunteer.cs.und.edu/subset_sum/
# EDGES ----> http://home.edges-grid.eu/home/
# Ibercivis ----> http://www.ibercivis.es/
# Rioja Science ----> http://boinc.riojascience.com/
# YoYo ----> http://www.rechenkraft.net/yoyo/
# WUProp ----> http://wuprop.boinc-af.org/
# POGS ----> http://ec2-23-23-126-96.compute-1.amazonaws.com/pogs/
# ClimatePrediction-> http://climateprediction.net/
#############################################################################
# Elenco dei progetti GPU (Indicare l'attach del progetto)
gpu_attach="http://einstein.phys.uwm.edu/
http://boinc.freerainbowtables.com/distrrtgen/
http://www.gpugrid.net/
http://milkyway.cs.rpi.edu/milkyway/
http://boinc.fzk.de/poem/
http://www.worldcommunitygrid.org/
http://www.primegrid.com/
http://moowrap.net/"
# Elenco dei progetti CPU (Indicare l'attach del progetto)
cpu_attach="http://asteroidsathome.net/boinc/
http://aerospaceresearch.net/constellation/
http://www.cosmologyathome.org/
http://eon.ices.utexas.edu/eon2/
http://boinc.gorlaeus.net/
http://lhcathomeclassic.cern.ch/sixtrack/
http://setiathome.berkeley.edu/
http://mmgboinc.unimi.it/
http://svahesrv2.bioquant.uni-heidelberg.de/correlizer/
http://docking.cis.udel.edu/
http://boinc.ucd.ie/fmah/
http://boinc.umiacs.umd.edu/
http://www.malariacontrol.net/
http://www.rnaworld.de/rnaworld/
http://boinc.bakerlab.org/rosetta/
http://boincsimap.org/boincsimap/
http://boinc.thesonntags.com/collatz/
http://volunteer.cs.und.edu/subset_sum/
http://home.edges-grid.eu/home/
http://www.ibercivis.es/
http://boinc.riojascience.com/
http://www.rechenkraft.net/yoyo/
http://wuprop.boinc-af.org/
http://ec2-23-23-126-96.compute-1.amazonaws.com/pogs/
"
# Sospensione richiesta di lavoro dei progetti CPU elencati
# Permette di terminare le WU in coda
for cpu_pr in $cpu_attach ; do
/usr/bin/boinccmd --project ${cpu_pr} nomorework
done
# Sospensione richiesta di lavoro dei progetti GPU elencati
# Permette di terminare le WU in coda
for gpu_pr in $gpu_attach ; do
/usr/bin/boinccmd --project ${gpu_pr} nomorework
done
cpu_attach1=($cpu_attach)
gpu_attach1=($gpu_attach)
# Conteggio progetti
num_cpuprj=${#cpu_attach1[*]}
num_gpuprj=${#gpu_attach1[*]}
# Generazione casuale dei progetti CPU
# Per indicare il numero dei progetti da avviare , modificare il valore {1..5} nel ciclo for
# Esempio per N°6 Progetti da considerare : {1..6}
# Esempio per N°9 Progetti da considerare : {1..9}
# e così via
for I in {1..3} ; do
name_cpu=(${cpu_attach1[$((RANDOM%num_cpuprj))]})
/usr/bin/boinccmd --project ${name_cpu} allowmorework update
# Riabilita la richiesta di nuove WUs ed aggiorna il progetto per la richiesta di ulteriori WUs
done
# Generazione casuale dei progetti GPU
# Per indicare il numero dei progetti da avviare , modificare il valore {1..5} nel ciclo for
# Esempio per N°6 Progetti da considerare : {1..6}
# Esempio per N°9 Progetti da considerare : {1..9}
# e così via
for i in {1..2} ; do
name_gpu=(${gpu_attach1[$((RANDOM%num_gpuprj))]})
/usr/bin/boinccmd --project ${name_gpu} allowmorework update
done
Salvare e rendere eseguibile il file di testo appena creato (lo script)
E' ora possibile utilizzare il cornjob utente per eseguire lo script ad intervalli di tempo da voi prestabiliti
Esempio Impostare la generazione dei progetti ogni 4 giorni.
Ogni 4 giorni (Lunedi e Giovedi),alla mezzanotte ,verrà eseguito lo script.Le WUs in coda e/o rimaenti verranno terminate con priorità in base alla loro deadline,
0 0 * * 1,4 /usr/bin/bash /<percorso>/<vostro>/<script>/boinc_cron > /dev/null
Lo script :
Nella variabile
attach sono elencati gli "attach" URL dei vari progetti che vi interssa far ruotare
All'Avvio dello script vengono prima bloccate le richieste di WU i tutti i progetti in elenco .In tal modo si dà la possibilità di terminare ulteriori WUs in coda.
Decidere quanti progetti si vogliono tenere in considerazione (vedi commenti script)
In seguito vengono generati casualmente gli attach dei progetti in elenco e ripresa la richiesta di WU per i progetti generati e relativo update per la richiesta di nuove WUs.
NB 1 : nella generazione casuale del progetto , un progetto potrebbe essere ripetuto più volte.
NB 2 : Assicurarsi che il proprio utente abbia accesso al cronjob utente (Vedi propria Distribuzione)
NB 3 : Il comando "boinccmd" fa riferimento all'eseguibile ubicato in /usr/bin (percorso standard per Boinc installato da Package Manager). se si sta utilizzando l'eseguibile fornito direttamente dallo script del Boinc ufficiale , indicare l'intero percorso del "boinccmd" in uso.
[...]
...script funzionante ma ancora in fase di "miglioramento"