meta data for this page
  •  

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 oldalonElőző változat
Következő változat
Előző változat
Következő változatKövetkező változat mindkét oldalon
shell:oravm:ovm_cpu_pin_map [2020/01/27 10:00] – ↷ Page moved from shell:ovm_cpu_pin_map to shell:oravm:ovm_cpu_pin_map adminshell:oravm:ovm_cpu_pin_map [2020/06/18 11:22] – régebbi változat helyreállítva (2020/05/06 13:38) admin
Sor 4: Sor 4:
 #!/bin/bash #!/bin/bash
 ##################################################### #####################################################
-# OVM CPU PIN MAP v1.0+# OVM CPU PIN MAP v1.2
 # 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 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}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 =~ [^tTpPmMvVqQ] ]]; do read FUNKCIO; done
 +case $FUNKCIO in
 +    [tT] )
 +        pin_map
 +        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>