Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #cat /usr/local/bin/iperf.sh
- #! /bin/bash
- #Скрипт перезапуска iperf: 0. функция запуска iperf
- #1.находим PID процесса. 2. проверяем запущен ли iperf
- #3.узнаем CPU TIME+ процесса. #4 благодаря sed убираем знак ":" из вывода.
- #5. ждем 5 секунд 6.опять узнаем CPU TIME процесса, 7.опять седом убираем из вывода лишнее.
- #8.проверяем совпадают ли значения вначале и через 5 секунд
- #если да, то выход, если нет, то убиваем процесс, и запускаем его еще раз.
- #x. если надо - вешаем в крон.
- #license : GNU GPL version 2
- #author: Mihail Zaporozhets, 2013-10-12
- #0. function for start iperf
- iperfstart ()
- {
- /usr/bin/iperf -sD 1>/dev/null
- echo "iperf daemon was started or rebooted"
- exit 0
- }
- #1.pid of iperf=
- ID_iperf=$(pidof /usr/bin/iperf) #2>/dev/null
- #2 if iperf not running than start it, else go to next
- [ -z $ID_iperf ] && echo "not run" && iperfstart || echo "iperf is RUN, next main work of script"
- #3.CPU TIME+ of iperf PID:
- cmdline1=$(ps -otime= -p $ID_iperf)
- echo ps -otime= -p $ID_iperf ":" $cmdline1
- #4. deleting all ":" by sed
- Cputime1=`echo $cmdline1 | sed 's/://g'`
- sleep 5
- cmdline2=$(ps -otime= -p $ID_iperf)
- echo ps -otime= -p $ID_iperf ":" $cmdline2
- Cputime2=`echo $cmdline2 | sed 's/://g'`
- #echo "8: if cpu time not changed go to exit || else kill iperf and start it again"
- if [ $Cputime1 == $Cputime2 ];
- then
- echo "good:cpu time not grow"
- else
- echo "bad: cpu time is growing, need to restart iperf"
- kill -9 $ID_iperf
- sleep 1
- iperfstart
- fi
Advertisement
Add Comment
Please, Sign In to add comment