Zahl auslesen und verarbeiten sed CPUAffinity
Hallo,
Ich habe ein Shellscript:
Soweit so gut. Die definierten Cores werden mit Komma oder Bindestrich in die Config des Services eingetragen.
Ich möchte jetzt, dass automatisch die anderen Cores (auch wieder mit Komma oder Bindestrich getrennt) in eine andere Datei schreiben.
Beispiel:
20 Cores
Core 2,3,17 werden reserviert.
heißt in die andere Datei müssen "0,1,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20" eingetragen werden.
Oder:
20 Cores
Core 10-20 werden reserviert.
heißt in die andere Datei müssen 0-10 eingetragen werden.
Oder:
20 Cores
Core 5-15 werden reserviert.
heißt in die andere Datei müssen "0,1,2,3,4,16,17,18,19,20" eingetragen werden.
kann man das zb mit sed abbilden?
Kann sed sowas?
Ich habe ein Shellscript:
Zeile=$(egrep processor /proc/cpuinfo | cut -d":" -f2 | tail -1)
echo "Der Server hat $Zeile Cores"
echo "Welches Cores wollen Sie zusammenfassen? Beispiel: 35,37,39 oder 0-4"
read -e ant
echo "Die Core(s) $ant werden zusammengefasst und ausschließlich für den beispiel.service reserviert"
CPUAffinity='CPUAffinity=$ant'
sed -i '/StandardOutput=journal/ a '$CPUAffinity'' servicedatei
Soweit so gut. Die definierten Cores werden mit Komma oder Bindestrich in die Config des Services eingetragen.
Ich möchte jetzt, dass automatisch die anderen Cores (auch wieder mit Komma oder Bindestrich getrennt) in eine andere Datei schreiben.
Beispiel:
20 Cores
Core 2,3,17 werden reserviert.
heißt in die andere Datei müssen "0,1,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20" eingetragen werden.
Oder:
20 Cores
Core 10-20 werden reserviert.
heißt in die andere Datei müssen 0-10 eingetragen werden.
Oder:
20 Cores
Core 5-15 werden reserviert.
heißt in die andere Datei müssen "0,1,2,3,4,16,17,18,19,20" eingetragen werden.
kann man das zb mit sed abbilden?
Kann sed sowas?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6086807085
Url: https://administrator.de/contentid/6086807085
Ausgedruckt am: 21.11.2024 um 16:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo,
das ist eig. nicht so schwierig schau dir diesbezüglich mal http://linux.die.net/man/1/seq an:
grüße
das ist eig. nicht so schwierig schau dir diesbezüglich mal http://linux.die.net/man/1/seq an:
% seq 12 14
12
13
14
grüße
z.B.
CPUS=$(seq 0 $(($(grep -c ^processor /proc/cpuinfo)-1)))
RESERVED=2,3,4
DIFF=$(echo -n "$CPUS" | grep -Ev "^$(echo $RESERVED | tr ',' '|')$" | tr "\n" "," | sed -e 's/,$//')
echo $DIFF