meta data for this page
Ez a dokumentum egy előző változata!
Oracle VM CPU pin map
- ovm_cpu_pin_map.sh
#!/bin/bash ##################################################### # OVM CPU PIN MAP v1.0 # Keszitette: Agoston Peter ##################################################### CPU_SUM_WARN=2 CPU_SUM_CRIT=10 OVM_ADMIN_PASSWD=PAssword123 OVMC="/u01/app/oracle/ovm-manager-3/ovm-utils/ovm_vmcontrol" SSHC="ssh -n -p 10000 admin@localhost" if [[ -z "$OVM_ADMIN_PASSWD" ]]; then read -s -p "Add meg az oracle VM Manager admin jelszavat: " OVM_ADMIN_PASSWD fi red=$'\e[1;31m' grn=$'\e[1;32m' yel=$'\e[1;33m' blu=$'\e[1;34m' mag=$'\e[1;35m' cyn=$'\e[1;36m' whi=$'\e[1;37m' inv=$'\e[7;37m' gry=$'\e[1;90m' end=$'\e[0m' function fejlec { # $1: CIM, $2: hossz FEJLEC=`echo $1 | tr '[:lower:]' '[:upper:]'` KIMENET="-=[ ${yel}$FEJLEC${end} ]=-" for I in `seq 1 $((($2-${#FEJLEC}-3)/2))`; do KIMENET="_$(echo $KIMENET)_" done echo -e $KIMENET } function vastag_fejlec { # $1: CIM, $2: hossz FEJLEC=`echo $1 | tr '[:lower:]' '[:upper:]'` KIMENET="-=[ ${yel}$FEJLEC${whi} ]=-" printf "${whi}" for I in `seq 1 $2`; do printf '#'; done echo for I in `seq 1 $((($2-${#FEJLEC}-7)/2))`; do KIMENET="#$(echo $KIMENET)#" done echo -e $KIMENET printf "${whi}" for I in `seq 1 $2`; do printf '#'; done printf "${end}" } echo Kulcs ellenorzese a CLI-hez... if [[ $(ssh -o StrictHostKeyChecking=no -o BatchMode=yes -o ConnectTimeout=5 admin@localhost -p 10000 list manager |grep -c Success) -eq 0 ]]; then echo "Nincs SSH kulcs a CLI-hez, legeneralom:" # read -s -p "Add meg az oracle VM Manager administrator jelszavat: " OVM_PASSWD echo "Kulcs legeneralasa:" ssh-keygen -t rsa echo "Publikus kulcs masolasa a /home/oracle/.ssh/ovmcli_authorized_keys-be..." su - oracle -c "touch /home/oracle/.ssh/ovmcli_authorized_keys" cat ~/.ssh/id_rsa.pub >> /home/oracle/.ssh/ovmcli_authorized_keys echo "Elso kapcsolodas (jelszot ker):" ssh admin@localhost -p 10000 exit echo "Teszt kapcsolodas:" if [[ $(ssh -o StrictHostKeyChecking=no -o BatchMode=yes -o ConnectTimeout=5 admin@localhost -p 10000 list manager |grep -c Success) -eq 0 ]]; then echo "Sikertelen. Eddig tartott a tudomanyom, ellenorizd mi lehet a gond!" exit 1 else echo "Sikeres!" fi fi CURR_DIR=$(pwd) cd ${OVMC%/*} >/dev/null 2>&1 if [[ $? -gt 0 || ! -e $OVMC ]]; then echo "Vagy az ovm_vmcontrol fajl, vagy az utvonala hibas: $OVMC" exit 1 fi clear TERMINAL_COLS=$(/usr/bin/tput cols) vastag_fejlec "Oracle VM CPU pin map by Agoston Peter" $(($TERMINAL_COLS-5)) '#' echo echo -e "${yel}Szerverek beolvasasa...${end}" MAX_CPU_NUM=0 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 CPU_NUM=$($SSHC show server name="$OVS" | grep -c '^.*Cpu.*Processor ') fejlec "#$OVS# CPU PIN MAP" $(($MAX_CPU_NUM*3-3)) VM_NUM=$($SSHC show server name="${OVS}" | grep -c '^.*Vm .*\[.*\]') if [[ $VM_NUM -eq 0 ]]; then echo -e "${whi}Ezen a szerveren nincs VM.${end}" continue fi # CPU PIN MAP for CPU in $(seq 0 $(($CPU_NUM-1))); do printf "|${yel}%02d${end}" $CPU done echo "| vCPU" for I in $(seq 0 $(($MAX_CPU_NUM-1))); do printf "+--"; done echo "+" while read VM; do VM_NAME=$(echo $VM | grep -oP '(?<=\[).*(?=\])') VM_ID=$(echo $VM | awk '{print $5}') 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 else PINS=$(echo $PINS | sed 's/,/ /g') fi for CPU in $(seq 0 $(($CPU_NUM-1))); do if [[ $(echo $PINS | grep -Pc "\b$CPU\b") -eq 1 ]]; then printf "|${whi}##${end}" CPU_PIN_SUM[$CPU]=$((${CPU_PIN_SUM[$CPU]}+1)) else printf "| " fi done if [[ -z $PINS ]]; then echo -e "| ${red}$VM_NAME [${PINS:-Nincs pinelve}]${end}" else echo -e "| ${whi}$VM_NAME [${PINS:-Nincs pinelve}]${end}" fi done <<< "`$SSHC "show server name=$OVS" | grep '^.*Vm .*\[.*\]' | sort`" # CPU pin szumma / cpu for I in $(seq 0 $(($MAX_CPU_NUM-1))); do printf "+--"; done echo "+" for CPU in $(seq 0 $(($CPU_NUM-1))); do if [[ ${CPU_PIN_SUM[$CPU]} -ge $CPU_SUM_CRIT ]]; then printf "|${red}%02d${end}" ${CPU_PIN_SUM[$CPU]} elif [[ ${CPU_PIN_SUM[$CPU]} -ge $CPU_SUM_WARN ]]; then printf "|${yel}%02d${end}" ${CPU_PIN_SUM[$CPU]} elif [[ ${CPU_PIN_SUM[$CPU]} -gt 0 ]]; then printf "|${grn}%02d${end}" ${CPU_PIN_SUM[$CPU]} else printf "| " fi done echo "| Pins / vCPU" done echo cd $CURR_DIR