tools.utils

Yohn Y. 2023-12-27 Parent:76ec73e5f395

3:8b31e171c1a0 Go to Latest

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

+ Скрипт для РК бекапов с Proxmox на S3

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