Advertisement
Guest User

Untitled

a guest
May 21st, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. uporabnik=$(whoami)
  4. stevilo=$(tput line)
  5. stevilke='^[0-9]+$'
  6. prvo=$1
  7. line=""
  8. #http://www.linuxquestions.org/questions/linux-newbie-8/how-to-get-cpu-usage-of-a-process-63726/ KORISTNA
  9. while getopts ":-u:-n:" argu; do
  10. case $argu in
  11. u)
  12. if id "$OPTARG" >/dev/null 2>&1;then
  13. uporabnik=$OPTARG
  14. else
  15. echo "Napaka: neznan uporabnik.">&2
  16. exit 2
  17. fi
  18. ;;
  19. n)
  20.  
  21. if ! [[ "${OPTARG}" =~ $stevilke ]]; then
  22. echo "Napaka: argument ni številka.">&2
  23. exit 3
  24. else
  25. stevilo="${OPTARG}"
  26. fi
  27. ;;
  28. ?)
  29. echo "Napaka: neznano stikalo -$OPTARG.">&2
  30. exit 4
  31. ;;
  32. esac
  33. done
  34.  
  35. function procesi(){
  36.  
  37. echo "UPORABNIK PID UKAZ PPID (UKAZ) P CPU\n"
  38. ps -u $uporabnik -o user,pid,comm,ppid --no-headers --sort=-start_time| head -n $(($stevilo)) | while read line; do
  39. pid=$(echo $line | cut -d" " -f2)
  40. ppid=$(ps h -o ppid -p $pid )
  41. imepar=$(ps h -o comm= $ppid)
  42. pri=$(ps h -o pri= $pid)
  43. pcpu=$(ps h -o pcpu= $pid)
  44. if [[ ${#imepar} -lt 30 ]];then
  45. echo "$line ($imepar) $pri $pcpu\n"
  46. else
  47. echo "$line () $pri $pcpu\n"
  48. fi
  49. done
  50. }
  51.  
  52. napaka=""
  53. while true;do
  54. echo "$napaka"
  55. echo ""
  56. echo -en $(procesi) | head -n $((stevilo-3)) | column -ts " "
  57. setterm -cursor off gas
  58. tput cup 0 0
  59. read -t 10 -s -n 1 vnos
  60.  
  61. case "$vnos" in
  62. u)
  63. setterm -cursor on
  64. read -s vnos2;
  65. if id "$vnos2" >/dev/null 2>&1;then
  66. uporabnik="$vnos2"
  67. else
  68. napaka="Napaka: neznan uporabnik."
  69.  
  70. fi
  71. ;;
  72. n)
  73. read -s vnos2;
  74. if ! [[ "${vnos2}" =~ $stevilke ]]; then
  75. napaka="Napaka: argument ni številka."
  76.  
  77. else
  78. stevilo="${vnos2}"
  79. fi
  80. ;;
  81. k)
  82. read -s vnos2;
  83. if [[ $vnos2 =~ $re ]]; then
  84. kill -2 $OPTARG
  85. else
  86. napaka="Napaka: argument ni številka."
  87. echo -en $(procesi)| column -ts " "
  88. exit 3
  89. fi
  90. ;;
  91. q)
  92. tput reset
  93. echo -en $(procesi) | head -n $((stevilo - 3)) | column -ts " "
  94. exit 0;
  95. ;;
  96. \?)
  97. napaka="Napaka: neznano stikalo -$vnos."
  98. echo -en $(procesi)| column -ts " "
  99. exit 4
  100. ;;
  101. esac
  102. tput reset
  103. #read spre
  104. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement