tools.utils

Yohn Y. 2023-12-16

0:e6a423f0d231 Go to Latest

tools.utils/kvm/qemu-ga.watcher.sh.sh

+ Скрипт проверки состояния qemu-ga

History
awgur@0 1 #!/bin/sh
awgur@0 2 # devel.a0fs.ru -- ncc.mon.kvm.tool:/root/libexec/qemu-ga.watcher.sh -- v0.r202312.1
awgur@0 3 # Запускается через crontab:
awgur@0 4 # */15 * * * * /bin/sh /root/libexec/qemu-ga.watcher.sh
awgur@0 5 #
awgur@0 6 export PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
awgur@0 7
awgur@0 8 NAME="qemu-ga"
awgur@0 9
awgur@0 10
awgur@0 11 log () {
awgur@0 12 logger -t "qemu-ga.watcher" "$@"
awgur@0 13 }
awgur@0 14
awgur@0 15
awgur@0 16 check_get_proc () {
awgur@0 17 ps -Ao comm,pcpu | awk -v pname="$NAME" '\
awgur@0 18 BEGIN {buf = 0}; \
awgur@0 19 $1 == pname {if (buf < $2) buf = $2 * 10 } \
awgur@0 20 END {print buf} \
awgur@0 21 '
awgur@0 22 }
awgur@0 23
awgur@0 24
awgur@0 25 check () {
awgur@0 26 [ $(check_get_proc) -ge 800 ]
awgur@0 27 }
awgur@0 28
awgur@0 29
awgur@0 30 {
awgur@0 31 flag="1"
awgur@0 32 echo CHECK
awgur@0 33 if check ; then
awgur@0 34 log -p user.error "qemu agent overload: watching..."
awgur@0 35 cntr=0
awgur@0 36
awgur@0 37 while [ $cntr -le 100 ] ; do
awgur@0 38 sleep 1
awgur@0 39 cntr=$(( $cntr + 1 ))
awgur@0 40
awgur@0 41 if ! check ; then
awgur@0 42 flag=""
awgur@0 43 break
awgur@0 44
awgur@0 45 fi
awgur@0 46 done
awgur@0 47
awgur@0 48 if [ "$flag" ] ; then
awgur@0 49 log -p user.error "qemu agent overload: restarting"
awgur@0 50 systemctl restart qemu-guest-agent
awgur@0 51
awgur@0 52 fi
awgur@0 53
awgur@0 54 } 2>&1 | log
awgur@0 55