sysinfo.sh 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/bash
  2. # Developed by: Cybergavin
  3. # Edited by : PythonCoder8
  4. # Date : 23rd October 2018
  5. # Description : Welcome Wagon - Bash script to display information about the system
  6. # Tested on RHEL 7, CentOS 8, Raspbian 10, and Ubuntu 20.04 LTS
  7. ###########################################################################################################
  8. # Color variables
  9. BLACK=$(tput setaf 0)
  10. RED=$(tput setaf 1)
  11. GREEN=$(tput setaf 2)
  12. YELLOW=$(tput setaf 3)
  13. LIME_YELLOW=$(tput setaf 190)
  14. POWDER_BLUE=$(tput setaf 153)
  15. BLUE=$(tput setaf 4)
  16. MAGENTA=$(tput setaf 5)
  17. CYAN=$(tput setaf 6)
  18. WHITE=$(tput setaf 7)
  19. BRIGHT=$(tput bold)
  20. NORMAL=$(tput sgr0)
  21. UNDERLINE=$(tput smul)
  22. # Host Details
  23. my_ips=$(ip -4 address | grep "inet " | grep -v "127.0.0.1" | awk '{printf $2" "}')
  24. my_os=$(cat /etc/os-release | grep PRETTY_NAME | cut -d= -f2 | sed 's/\"//g')
  25. my_kernel=$(uname -r)
  26. my_uptime=$(uptime|sed 's/^ *//g')
  27. # CPU Details
  28. my_cpu_model=`lscpu | grep "Model name" | awk -F: '{print $2}' | sed 's/^ *//g'`
  29. my_cpu_sockets=`lscpu | grep "Socket(s)" | awk -F: '{print $2}' | sed 's/^ *//g'`
  30. my_cpu_cores=`lscpu | grep "Core(s) per socket" | awk -F: '{print $2}' | sed 's/^ *//g'`
  31. my_cpu_lps=`lscpu | grep "^CPU(s)" | awk -F: '{print $2}' | sed 's/^ *//g'`
  32. # Memory
  33. my_mem_total=$(grep -m 1 -w 'MemTotal' /proc/meminfo | awk -F: '{print $2 / 1024 / 1024 }' | sed 's/^ *//g')
  34. my_mem_free=$(grep -m 1 -w 'MemFree' /proc/meminfo | awk -F: '{print $2 / 1024 / 1024 }' | sed 's/^ *//g')
  35. my_swap_total=$(grep -m 1 -w 'SwapTotal' /proc/meminfo | awk -F: '{print $2 / 1024 / 1024 }' | sed 's/^ *//g')
  36. my_swap_free=$(grep -m 1 -w 'SwapFree' /proc/meminfo | awk -F: '{print $2 / 1024 / 1024 }' | sed 's/^ *//g')
  37. echo -e ""
  38. echo -e "${WHITE}Welcome ${YELLOW}${USER} ${NORMAL}to ${CYAN}${UNDERLINE}$HOSTNAME${NORMAL}"
  39. echo -e ""
  40. echo -e "${YELLOW}Date: `date`${NORMAL}"
  41. echo -e ""
  42. cat <<EOF
  43. $(printf "${WHITE}%-20s${NORMAL}: ${CYAN}%-20s${NORMAL}" "IPv4 Address(es)" "$my_ips")
  44. $(printf "${WHITE}%-20s${NORMAL}: ${CYAN}%-20s${NORMAL}" "Hostname" "$HOSTNAME")
  45. $(printf "${WHITE}%-20s${NORMAL}: ${CYAN}%-20s${NORMAL}" "Operating System (OS)" "$my_os")
  46. $(printf "${WHITE}%-20s${NORMAL}: ${CYAN}%-20s${NORMAL}" "OS Kernel" "$my_kernel")
  47. $(printf "${WHITE}%-20s${NORMAL}: ${CYAN}%-20s${NORMAL}" "Uptime" "$my_uptime")
  48. $(printf "${WHITE}%-20s${NORMAL}: ${CYAN}%-20s${NORMAL}" "CPU Model" "$my_cpu_model")
  49. $(printf "${WHITE}%-20s${NORMAL}: ${CYAN}%-20s${NORMAL}" "CPU Sockets" "$my_cpu_sockets")
  50. $(printf "${WHITE}%-20s${NORMAL}: ${CYAN}%-20s${NORMAL}" "CPU Cores/Socket" "$my_cpu_cores")
  51. $(printf "${WHITE}%-20s${NORMAL}: ${CYAN}%-20s${NORMAL}" "CPU Logical Processors" "$my_cpu_lps")
  52. $(printf "${WHITE}%-20s${NORMAL}: ${CYAN}%-20s${NORMAL}" "Total Memory" "$my_mem_total GiB")
  53. $(printf "${WHITE}%-20s${NORMAL}: ${CYAN}%-20s${NORMAL}" "Free Memory" "$my_mem_free GiB")
  54. EOF
  55. # Reset Terminal Colour Back to Normal
  56. echo -e "${NORMAL}"