v-list-sys-info 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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. # JSON list function
  14. json_list() {
  15. echo '{'
  16. echo ' "sysinfo": {
  17. "HOSTNAME": "'$HOSTNAME'",
  18. "OS": "'$OS'",
  19. "VERSION": "'$VERSION'",
  20. "ARCH": "'$ARCH'",
  21. "UPTIME": "'$UPTIME'",
  22. "LOADAVERAGE": "'$LOADAVERAGE'"
  23. }'
  24. echo '}'
  25. }
  26. # SHELL list function
  27. shell_list() {
  28. echo "HOSTNAME OS VER ARCH UPTIME LA"
  29. echo "-------- -- --- ---- ------ --"
  30. echo "$HOSTNAME $OS $VERSION $ARCH $UPTIME $LOADAVERAGE"
  31. }
  32. # PLAIN list function
  33. plain_list() {
  34. echo -e "$HOSTNAME\t$OS\t$VERSION\t$ARCH\t$UPTIME\t$LOADAVERAGE"
  35. }
  36. # CSV list function
  37. csv_list() {
  38. echo "HOSTNAME,OS,VERSION,ARCH,UPTIME,LOADAVERAGE"
  39. echo "$HOSTNAME,$OS,$VERSION,$ARCH,$UPTIME,$LOADAVERAGE"
  40. }
  41. #----------------------------------------------------------#
  42. # Action #
  43. #----------------------------------------------------------#
  44. # Check hostname
  45. HOSTNAME=$(hostname)
  46. # Check OS/Release
  47. if [ -e '/etc/redhat-release' ]; then
  48. if [ ! -z "$(grep CentOS /etc/redhat-release)" ]; then
  49. OS='CentOS'
  50. else
  51. OS="RHEL"
  52. fi
  53. VERSION=$(cat /etc/redhat-release| tr ' ' '\n' |grep [0-9])
  54. else
  55. if [ "$(lsb_release -si)" == "Ubuntu" ] && [ -e '/etc/debian_version' ]; then
  56. OS="Ubuntu"
  57. VERSION=$(grep DISTRIB_RELEASE /etc/lsb-release| cut -f 2 -d '=')
  58. else
  59. distro=$(head -n1 /etc/issue |cut -f 1 -d ' ')
  60. if [ "$distro" = 'Debian' ]; then
  61. OS="Debian"
  62. VERSION=$(cat /etc/debian_version)
  63. else
  64. OS='UNKNOWN'
  65. VERSION='UNKNOWN'
  66. fi
  67. fi
  68. fi
  69. # Check architecture
  70. ARCH=$(arch)
  71. # Check uptime
  72. UPTIME=$(cat /proc/uptime |cut -f 1 -d ' '|cut -f 1 -d .)
  73. UPTIME="$(echo $UPTIME / 60 |bc)"
  74. # Check LoadAverage
  75. LOADAVERAGE=$(cat /proc/loadavg |cut -f 1 -d ' ')
  76. # Listing data
  77. case $format in
  78. json) json_list ;;
  79. plain) plain_list ;;
  80. csv) csv_list ;;
  81. shell) shell_list |column -t ;;
  82. esac
  83. #----------------------------------------------------------#
  84. # Vesta #
  85. #----------------------------------------------------------#
  86. exit