tools.utils

Yohn Y. 2025-05-17 Parent:76ec73e5f395

6:9fc60d528049 Go to Latest

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

+ shell утилиты

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