Advertisement
redckard

System monitor

Feb 6th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.97 KB | None | 0 0
  1. #! /bin/bash
  2. clear
  3.  
  4. unset tecreset os architecture kernelrelease internalip externalip nameserver loadaverage
  5.  
  6. while getopts iv name
  7. do
  8.         case $name in
  9.           i)iopt=1;;
  10.           v)vopt=1;;
  11.           *)echo "Invalid arg";;
  12.         esac
  13. done
  14.  
  15. if [[ ! -z $iopt ]]
  16. then
  17. {
  18. wd=$(pwd)
  19. basename "$(test -L "$0" && readlink "$0" || echo "$0")" > /tmp/scriptname
  20. scriptname=$(echo -e -n $wd/ && cat /tmp/scriptname)
  21. su -c "cp $scriptname /usr/bin/monitor" root && echo "Congratulations! Script Installed, now run monitor Command" || echo "Installation failed"
  22. }
  23. fi
  24.  
  25. if [[ ! -z $vopt ]]
  26. then
  27. {
  28. echo -e "System Monitor by Rednet"
  29. }
  30. fi
  31.  
  32. if [[ $# -eq 0 ]]
  33. then
  34. {
  35.  
  36.  
  37. # Define Variable tecreset
  38. tecreset=$(tput sgr0)
  39.  
  40. # Check if connected to Internet or not
  41. ping -c 1 google.com &> /dev/null && echo -e '\E[32m'"Internet: $tecreset Connected" || echo -e '\E[32m'"Internet: $tecreset Disconnected"
  42.  
  43. # Check OS Type
  44. os=$(uname -o)
  45. echo -e '\E[32m'"Operating System Type :" $tecreset $os
  46.  
  47. # Check OS Release Version and Name
  48. cat /etc/os-release | grep 'NAME\|VERSION' | grep -v 'VERSION_ID' | grep -v 'PRETTY_NAME' > /tmp/osrelease
  49. echo -n -e '\E[32m'"OS Name :" $tecreset  && cat /tmp/osrelease | grep -v "VERSION" | cut -f2 -d\"
  50. echo -n -e '\E[32m'"OS Version :" $tecreset && cat /tmp/osrelease | grep -v "NAME" | cut -f2 -d\"
  51.  
  52. # Check Architecture
  53. architecture=$(uname -m)
  54. echo -e '\E[32m'"Architecture :" $tecreset $architecture
  55.  
  56. # Check Kernel Release
  57. kernelrelease=$(uname -r)
  58. echo -e '\E[32m'"Kernel Release :" $tecreset $kernelrelease
  59.  
  60. # Check hostname
  61. echo -e '\E[32m'"Hostname :" $tecreset $HOSTNAME
  62.  
  63. # Check Internal IP
  64. internalip=$(hostname -I)
  65. echo -e '\E[32m'"Internal IP :" $tecreset $internalip
  66.  
  67. # Check External IP
  68. externalip=$(curl -s ipecho.net/plain;echo)
  69. echo -e '\E[32m'"External IP : $tecreset "$externalip
  70.  
  71. # Check DNS
  72. nameservers=$(cat /etc/resolv.conf | sed '1 d' | awk '{print $2}')
  73. echo -e '\E[32m'"Name Servers :" $tecreset $nameservers
  74.  
  75. # Check Logged In Users
  76. who>/tmp/who
  77. echo -e '\E[32m'"Logged In users :" $tecreset && cat /tmp/who
  78.  
  79. # Check RAM and SWAP Usages
  80. free -h | grep -v + > /tmp/ramcache
  81. echo -e '\E[32m'"Ram Usages :" $tecreset
  82. cat /tmp/ramcache | grep -v "Swap"
  83. echo -e '\E[32m'"Swap Usages :" $tecreset
  84. cat /tmp/ramcache | grep -v "Mem"
  85.  
  86. # Check Disk Usages
  87. df -h| grep 'Filesystem\|/dev/sda*' > /tmp/diskusage
  88. echo -e '\E[32m'"Disk Usages :" $tecreset
  89. cat /tmp/diskusage
  90.  
  91. # Check Load Average
  92. loadaverage=$(top -n 1 -b | grep "load average:" | awk '{print $10 $11 $12}')
  93. echo -e '\E[32m'"Load Average :" $tecreset $loadaverage
  94.  
  95. # Check System Uptime
  96. tecuptime=$(uptime | awk '{print $3,$4}' | cut -f1 -d,)
  97. echo -e '\E[32m'"System Uptime Days/(HH:MM) :" $tecreset $tecuptime
  98.  
  99. # Unset Variables
  100. unset tecreset os architecture kernelrelease internalip externalip nameserver loadaverage
  101.  
  102. # Remove Temporary Files
  103. rm /tmp/osrelease /tmp/who /tmp/ramcache /tmp/diskusage
  104. }
  105. fi
  106. shift $(($OPTIND -1))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement