ms1982
Goto Top

Linux script

Hallo zusammen,

Ich bin auf der Suche nach einem passendem Lösungsansatz.

Ich habe eine Liste mit Computernamen wie HOSTNAME1, HOSTNAME2 alle Rechner haben 24 Cores.


#setup mp_host_list
PROCS_PER_NODE=24
mp_host_list="["  
for NODE in `/usr/bin/uniq $NODEFILE`; do
   mp_host_list="$mp_host_list[\"${NODE}\",${PROCS_PER_NODE} ],"  
done
export mp_host_list=`echo ${mp_host_list} | sed -e "s/,$/]/"`  
echo "Calculated mp_host_list as ${mp_host_list}"  

^
Ergebnis ist:

mp_host_list=['cn015.cm.cluster',24]

Das Ergebis sollte so ausschauen:

mp_host_list=['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1],['cn015.cm.cluster',1]

Was muss ich machen damit ['cn015.cm.cluster',1] 24 mal steht und nicht ['cn015.cm.cluster', 24] ?

Das ganze soll dynamisch bleiben und wenn man auf 2,3 viele Knoten rechnet, muss das entsprechend ergänzt werden.

Ich wäre für Lösungsansätze sehr dankbar.

Mike

Content-ID: 577085

Url: https://administrator.de/contentid/577085

Ausgedruckt am: 21.11.2024 um 23:11 Uhr

144260
Lösung 144260 06.06.2020 um 08:21:49 Uhr
Goto Top
Zeile 5 ersetzen durch
for x in $(seq $PROCS_PER_NODE) ;do
    mp_host_list="$mp_host_list[\"${NODE}\",1],"  
done
ms1982
ms1982 06.06.2020 um 10:39:36 Uhr
Goto Top
Vielen Dank!

Ich habe noch den sed Befehl angepasst, am Ende war noch ein Komma das entfernt werden musste.

mp_host_list=`echo ${mp_host_list} | sed -e "s/,$//"`