Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalon Előző változat
Következő változat
Előző változat
shell:oravm:ovm_cpu_pin_map [2020/01/27 09:00]
admin ↷ Page moved from shell:ovm_cpu_pin_map to shell:oravm:ovm_cpu_pin_map
shell:oravm:ovm_cpu_pin_map [2020/06/25 12:16] (aktuális)
admin
Sor 4: Sor 4:
 #!/bin/bash #!/bin/bash
 #####################################################​ #####################################################​
-# OVM CPU PIN MAP v1.0+# OVM CPU PIN MAP v1.3
 # Keszitette: Agoston Peter # Keszitette: Agoston Peter
 #####################################################​ #####################################################​
-CPU_SUM_WARN=2+CPU_SUM_WARN=5
 CPU_SUM_CRIT=10 CPU_SUM_CRIT=10
 OVM_ADMIN_PASSWD=PAssword123 OVM_ADMIN_PASSWD=PAssword123
-OVMC="/​u01/app/​oracle/​ovm-manager-3/​ovm-utils/​ovm_vmcontrol"​+OVMC="/​opt/ovm_utils/​ovm_vmcontrol"​
 SSHC="​ssh -n -p 10000 admin@localhost"​ SSHC="​ssh -n -p 10000 admin@localhost"​
 if [[ -z "​$OVM_ADMIN_PASSWD"​ ]]; then if [[ -z "​$OVM_ADMIN_PASSWD"​ ]]; then
Sor 26: Sor 26:
 gry=$'​\e[1;​90m'​ gry=$'​\e[1;​90m'​
 end=$'​\e[0m'​ end=$'​\e[0m'​
 +
  
 function fejlec { function fejlec {
Sor 80: Sor 81:
         exit 1         exit 1
 fi fi
 +SCRIPT_VER=$(grep -oP '​(?<​=#​ OVM CPU PIN MAP )[^)]*$'​ $CURR_DIR/​$0)
  
-clear +function pin_map { 
-TERMINAL_COLS=$(/​usr/​bin/​tput cols) +printf "​Melyik OVS(ek) pin terkepet mutassam ​(szokozokkel elvalasztva)? " 
-vastag_fejlec "​Oracle VM CPU pin map by Agoston Peter" $(($TERMINAL_COLS-5)) '#'​ +read -e -i "​${SERVERS##​ }" ​SOME_SERVERS 
-echo +for OVS in $SOME_SERVERS;​ do 
-echo -e "​${yel}Szerverek beolvasasa...${end}"​ +    [[ $($SSHC show server name="​$OVS" | grep -c 'Status: Success') -eq 0 ]] && continue; 
-MAX_CPU_NUM=0 +    unset CPU_PIN_SUM
-while read SERVER; do +
-        SERVERS="​${SERVERS# ​} ${SERVER##*:}" +
-        ​CPU_NUM=$($SSHC show server name="​${SERVER##​*:​}"​ | grep -c '​^.*Cpu.*Processor ') +
-    ​if [[ $MAX_CPU_NUM -lt $CPU_NUM ]]; then MAX_CPU_NUM=$CPU_NUM;​ fi +
-        VM_NUM=$($SSHC show server name="​${SERVER##​*:​}" | grep -c '^.*Vm .*\[.*\]') +
-        echo -e "​${whi}${SERVER##​*:​}${end} ${whi}$CPU_NUM${end} ${whi}$VM_NUM${end}"​ | awk '​{printf "​%-30s: ​    %5s vcpu, %5s VM\n",​$1,​$2,​$3}'​ +
-done <<<​ "​`$SSHC "list server"​ | grep '​id:'​ | sort`"​ +
- +
-for OVS in $SERVERS; do+
     echo     echo
     CPU_NUM=$($SSHC show server name="​$OVS"​ | grep -c '​^.*Cpu.*Processor ')     CPU_NUM=$($SSHC show server name="​$OVS"​ | grep -c '​^.*Cpu.*Processor ')
Sor 157: Sor 150:
 done done
 echo echo
 +}
 +
 +function vm_pin {
 +    printf "Mi a VM neve, amit pinelni szeretnel? "
 +    read INPUT_VM
 +    [[ $INPUT_VM == ""​ ]] && continue;
 +    if [[ $($SSHC show vm name="​$INPUT_VM"​ | grep -c '​Status:​ Success'​) -eq 0 ]]; then
 +        echo "Nincs ilyen VM nalam."​
 +        echo "Nyomj ENTER-t a visszatereshez.";​ read
 +        continue;
 +    fi
 +    SERVER=$($SSHC show vm name="​$INPUT_VM"​ | grep '​Server =' | grep -oP '​(?<​=\[).*(?​=\])'​)
 +    CPU_NUM=$($SSHC show server name="​${SERVER}"​ | grep -c '​^.*Cpu.*Processor ')
 +    echo "Ehhez a VM-hez az alabbi vCPU keszletet hasznalhatod:​ 0-$(($CPU_NUM-1))"​
 +    printf "​Melyik vCPU-kra szeretned pinelni (pl: 0-3; 2,4,6; 25-29)? "
 +    read INPUT_VCPU_LIST
 +    if [[ $INPUT_VCPU_LIST == ""​ ]]; then
 +        $OVMC -u admin -p $OVM_ADMIN_PASSWD -h localhost -v "​$INPUT_VM"​ -c rmvcpu
 +    else
 +        $OVMC -u admin -p $OVM_ADMIN_PASSWD -h localhost -v "​$INPUT_VM"​ -c setvcpu -s "​$INPUT_VCPU_LIST"​
 +    fi
 +}
 +
 +function vm_pin_query {
 +    printf "Mi a VM neve? "
 +    read INPUT_VM
 +    [[ $INPUT_VM == ""​ ]] && continue;
 +    if [[ $($SSHC show vm name="​$INPUT_VM"​ | grep -c '​Status:​ Success'​) -eq 0 ]]; then
 +        echo "Nincs ilyen VM nalam."​
 +        echo "Nyomj ENTER-t a visszatereshez.";​ read
 +        continue;
 +    fi
 +    $OVMC -u admin -p $OVM_ADMIN_PASSWD -h localhost -v "​$INPUT_VM"​ -c getvcpu
 +}
 +
 +function backup {
 +    printf "​Melyik OVS pin-jeit mentsuk (${SERVERS##​ })? "
 +    read OVSEK
 +  for OVS in $OVSEK; do
 +    [[ $OVS == ""​ ]] && continue;
 +    if [[ $($SSHC show server name="​$OVS"​ | grep -c '​Status:​ Success'​) -eq 0 ]]; then
 +        echo "$OVS: nincs ilyen OVS nalam."​
 +        continue;
 +    fi
 +    read -e -p "A backup fajl neve, abszolut utvonallal: " -i $CURR_DIR/​$(date "​+%Y%m%d_%H%M"​)_${OVS}_cpu_pins.bkp FILENAME
 +    if [[ -e "​$FILENAME"​ ]]; then
 +        read -p "A fajl mar letezik. Felulirjuk? [I/N] " VALASZ
 +        [[ "​${VALASZ^^}"​ == "​I"​ ]] || continue;
 +    fi
 +    touch $FILENAME
 +    if [[ $? -ne 0 ]]; then
 +        echo "A fajl valamiert nem irhato."​
 +        echo "Nyomj ENTER-t a visszatereshez.";​ read
 +        continue;
 +    else
 +        echo "A $FILENAME fajl irhato."​
 +    fi
 +    echo "#​ovm_cpu_pin_map Script version: $SCRIPT_VER,​ Backup date: $(date "​+%Y%m%d_%H%M"​),​ Original filename: $FILENAME " > $FILENAME
 +    while read VM; do
 +        VM_NAME=$(echo $VM | grep -oP '​(?<​=\[).*(?​=\])'​)
 +        PINS=$($OVMC -u admin -p $OVM_ADMIN_PASSWD -h localhost -v $VM_NAME -c getvcpu | awk -F':'​ '/​Current pinned CPU/{print $2}')
 +        if [[ $PINS =~ - ]]; then
 +            PIN_TOL=$(echo $PINS | awk -F'​-'​ '​{print $1}')
 +            PIN_IG=$(echo $PINS | awk -F'​-'​ '​{print $2}')
 +            PINS=""​
 +            for I in $(seq $PIN_TOL $PIN_IG); do
 +                PINS="​${PINS#​ },$I"
 +            done
 +        fi
 +        PINS=$(echo $PINS | sed '​s/​^,//'​)
 +        echo "​$OVS;​$VM_NAME;​$PINS"​ |tee -a $FILENAME
 +    done <<<​ "​`$SSHC "show server name=$OVS"​ | grep '^.*Vm .*\[.*\]'​ | sort`"
 +  done
 +}
 +
 +
 +function restore {
 +    echo -e "A script konyvtaraban ($CURR_DIR/​\*.bkp) az alabbi mentesek talalhatok:​${grn}"​
 +    grep "​^#​ovm_cpu_pin_map"​ $CURR_DIR/​*bkp | sed '​s/:​.*$//'​
 +    echo -e ${end}
 +    echo "​Melyiket toltsem vissza (copy & paste)? "
 +    read RESTORE_FILENAME
 +    echo -e ${whi}
 +    if [[ ! -e "​$RESTORE_FILENAME"​ ]]; then
 +        echo "A fajl nem letezik."​
 +        echo "Nyomj ENTER-t a visszatereshez.";​ read
 +        continue;
 +    fi
 +    if [[ $(grep -c "​^#​ovm_cpu_pin_map"​ $RESTORE_FILENAME) -eq 0 ]]; then
 +        echo "Nem megfelelo fejlecu fajl."
 +        echo "Nyomj ENTER-t a visszatereshez.";​ read
 +        continue
 +    fi
 +    cat $RESTORE_FILENAME
 +    echo -e ${end}
 +    read -e -p "Mehet a VM-ek pinelesenek beallitasa a mentesbol? [I/N] " VALASZ
 +    [[ "​${VALASZ^^}"​ == "​I"​ ]] || continue;
 +    echo -e ${whi}
 +    echo -e "VM nev;​VCPU-k;​Statusz"​ | awk -F';'​ '​{printf "%-30s %-30s %-60s",​$1,​$2,​$3}'​
 +    echo -e ${end}
 +    grep -v '​^#'​ $RESTORE_FILENAME | while read SOR; do
 +        OVS=$(echo $SOR |awk -F';'​ '​{print $1}')
 +        VM_NAME=$(echo $SOR |awk -F';'​ '​{print $2}')
 +        VCPU_LIST=$(echo $SOR |awk -F';'​ '​{print $3}')
 +        echo -e "​$VM_NAME;​$VCPU_LIST"​ | awk -F';'​ '​{printf "%-30s %-31s",​$1,​$2}'​
 +        printf ${red}
 +        if [[ -z "​$VCPU_LIST"​ ]]; then
 +            $OVMC -u admin -p $OVM_ADMIN_PASSWD -h localhost -v "​$VM_NAME"​ -c rmvcpu >/​dev/​null
 +        else
 +            $OVMC -u admin -p $OVM_ADMIN_PASSWD -h localhost -v "​$VM_NAME"​ -c setvcpu -s "​$VCPU_LIST"​ >/​dev/​null
 +        fi
 +        [[ $? -eq 0 ]] && echo -e "​${grn}OK${end}"​
 +        printf ${end}
 +    continue
 +    done
 +}
 +####################################################​ Vezerlo ciklus ####################################################​
 +FUNKCIO="​-"​
 +while [[ $FUNKCIO =~ [^qQ] ]]; do ############​
 +FUNKCIO="​-"​
 +
 +clear
 +TERMINAL_COLS=$(/​usr/​bin/​tput cols)
 +vastag_fejlec "​Oracle VM CPU pin map $SCRIPT_VER by Agoston Peter" $(($TERMINAL_COLS-5)) '#'​
 +echo
 +echo -e "​${yel}Szerverek beolvasasa...${end}"​
 +MAX_CPU_NUM=0
 +SERVERS=""​
 +while read SERVER; do
 +    SERVERS="​${SERVERS#​ } ${SERVER##​*:​}"​
 +    CPU_NUM=$($SSHC show server name="​${SERVER##​*:​}"​ | grep -c '​^.*Cpu.*Processor ')
 +    if [[ $MAX_CPU_NUM -lt $CPU_NUM ]]; then MAX_CPU_NUM=$CPU_NUM;​ fi
 +    VM_NUM=$($SSHC show server name="​${SERVER##​*:​}"​ | grep -c '^.*Vm .*\[.*\]'​)
 +    echo -e "​${whi}${SERVER##​*:​}${end} ${whi}$CPU_NUM${end} ${whi}$VM_NUM${end}"​ | awk '​{printf "​%-30s: ​    %5s vcpu, %5s VM\n",​$1,​$2,​$3}'​
 +done <<<​ "​`$SSHC "list server"​ | grep '​id:'​ | sort`"
 +echo
 +echo -e "​${yel}Valassz funkciot:​${end}"​
 +echo -e "​[${whi}t${end}] vCPU pin terkep lekerdezese"​
 +echo -e "​[${whi}l${end}] VM pinelesenek lekerdezese"​
 +echo -e "​[${whi}p${end}] VM pinelesenek modositasa"​
 +echo -e "​[${whi}m${end}] Pin terkep mentese fajlba"​
 +echo -e "​[${whi}v${end}] Pin terkep visszaallitasa mentesbol"​
 +echo -e "​[${whi}q${end}] Kilepes"​
 +FUNKCIO=""​
 +printf ": "; read FUNKCIO
 +while [[ $FUNKCIO =~ [^tTlLpPmMvVqQ] ]]; do read FUNKCIO; done
 +case $FUNKCIO in
 +    [tT] )
 +        pin_map
 +        echo "Nyomj ENTER-t a visszatereshez.";​ read
 +        ;;
 +    [lL] )
 +        vm_pin_query
 +        echo "Nyomj ENTER-t a visszatereshez.";​ read
 +        ;;
 +    [pP] )
 +        vm_pin
 +        echo "Nyomj ENTER-t a visszatereshez.";​ read
 +        ;;
 +    [mM] )
 +        backup
 +        echo "Nyomj ENTER-t a visszatereshez.";​ read
 +        ;;
 +    [vV] )
 +        restore
 +        echo "Nyomj ENTER-t a visszatereshez.";​ read
 +        ;;
 +esac
 +done ##############​
 cd $CURR_DIR cd $CURR_DIR
 </​file>​ </​file>​
  
shell/oravm/ovm_cpu_pin_map.1580115633.txt.gz · Utolsó módosítás: 2020/01/27 09:00 szerkesztette: admin
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0