v-list-sys-info 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #!/bin/bash
  2. # info: list system os
  3. # options: [FORMAT]
  4. #
  5. # The function checks available updates for vesta packages.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. format=${1-shell}
  11. # Includes
  12. source $VESTA/func/main.sh
  13. #----------------------------------------------------------#
  14. # Action #
  15. #----------------------------------------------------------#
  16. # Check hostname
  17. HOSTNAME=$(hostname)
  18. # Check OS/Release
  19. if [ -e '/etc/redhat-release' ]; then
  20. if [ ! -z "$(grep CentOS /etc/redhat-release)" ]; then
  21. OS='CentOS'
  22. else
  23. OS="RHEL"
  24. fi
  25. VERSION=$(cat /etc/redhat-release | tr ' ' '\n' |grep [0-9])
  26. else
  27. if [ "$(lsb_release -si)" == "Ubuntu" ] && [ -e '/etc/debian_version' ]; then
  28. OS="Ubuntu"
  29. VERSION=$(grep DISTRIB_RELEASE /etc/lsb-release| cut -f 2 -d '=')
  30. else
  31. distro=$(head -n1 /etc/issue | cut -f 1 -d ' ')
  32. if [ "$distro" = 'Debian' ]; then
  33. OS="Debian"
  34. VERSION=$(cat /etc/debian_version)
  35. else
  36. OS='UNKNOWN'
  37. VERSION='UNKNOWN'
  38. fi
  39. fi
  40. fi
  41. # Check architecture
  42. ARCH=$(arch)
  43. # Check uptime
  44. UPTIME=$(cat /proc/uptime |cut -f 1 -d ' '|cut -f 1 -d .)
  45. UPTIME="$(echo $UPTIME / 60 | bc)"
  46. # Check LoadAverage
  47. LOADAVERAGE=$(cat /proc/loadavg |cut -f 1 -d ' ')
  48. # Create tmp file
  49. tmp_file=$(mktemp)
  50. # Define key/value pairs
  51. str="SYS='sysinfo' HOSTNAME='$HOSTNAME' OS='$OS' VERSION='$VERSION'"
  52. str="$str ARCH='$ARCH' UPTIME='$UPTIME' LOADAVERAGE='$LOADAVERAGE'"
  53. # Defining config
  54. echo -e "$str" > $tmp_file
  55. conf=$tmp_file
  56. # Defining fileds to select
  57. fields="\$SYS \$HOSTNAME \$OS \$VERSION \$ARCH \$UPTIME \$LOADAVERAGE"
  58. # Listing services
  59. case $format in
  60. json) json_list ;;
  61. plain) nohead=1; shell_list ;;
  62. shell) fields="\$HOSTNAME \$OS \$VERSION \$ARCH \$UPTIME \$LOADAVERAGE"
  63. shell_list | column -t ;;
  64. *) check_args '1' '0' 'USER [FORMAT]'
  65. esac
  66. rm -f $tmp_file
  67. #----------------------------------------------------------#
  68. # Vesta #
  69. #----------------------------------------------------------#
  70. exit