Typ6oJIocb

iperf.sh

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