| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- #!/bin/bash
- # info: list system os
- # options: [FORMAT]
- #
- # The function checks available updates for vesta packages.
- #----------------------------------------------------------#
- # Variable&Function #
- #----------------------------------------------------------#
- # Argument definition
- format=${1-shell}
- # Includes
- source $VESTA/func/main.sh
- # JSON list function
- json_list() {
- echo '{'
- echo ' "sysinfo": {
- "HOSTNAME": "'$HOSTNAME'",
- "OS": "'$OS'",
- "VERSION": "'$VERSION'",
- "ARCH": "'$ARCH'",
- "UPTIME": "'$UPTIME'",
- "LOADAVERAGE": "'$LOADAVERAGE'"
- }'
- echo '}'
- }
- # SHELL list function
- shell_list() {
- echo "HOSTNAME OS VER ARCH UPTIME LA"
- echo "-------- -- --- ---- ------ --"
- echo "$HOSTNAME $OS $VERSION $ARCH $UPTIME $LOADAVERAGE"
- }
- # PLAIN list function
- plain_list() {
- echo -e "$HOSTNAME\t$OS\t$VERSION\t$ARCH\t$UPTIME\t$LOADAVERAGE"
- }
- # CSV list function
- csv_list() {
- echo "HOSTNAME,OS,VERSION,ARCH,UPTIME,LOADAVERAGE"
- echo "$HOSTNAME,$OS,$VERSION,$ARCH,$UPTIME,$LOADAVERAGE"
- }
- #----------------------------------------------------------#
- # Action #
- #----------------------------------------------------------#
- # Check hostname
- HOSTNAME=$(hostname)
- # Check OS/Release
- if [ -e '/etc/redhat-release' ]; then
- if [ ! -z "$(grep CentOS /etc/redhat-release)" ]; then
- OS='CentOS'
- else
- OS="RHEL"
- fi
- VERSION=$(cat /etc/redhat-release| tr ' ' '\n' |grep [0-9])
- else
- if [ "$(lsb_release -si)" == "Ubuntu" ] && [ -e '/etc/debian_version' ]; then
- OS="Ubuntu"
- VERSION=$(grep DISTRIB_RELEASE /etc/lsb-release| cut -f 2 -d '=')
- else
- distro=$(head -n1 /etc/issue |cut -f 1 -d ' ')
- if [ "$distro" = 'Debian' ]; then
- OS="Debian"
- VERSION=$(cat /etc/debian_version)
- else
- OS='UNKNOWN'
- VERSION='UNKNOWN'
- fi
- fi
- fi
- # Check architecture
- ARCH=$(arch)
- # Check uptime
- UPTIME=$(cat /proc/uptime |cut -f 1 -d ' '|cut -f 1 -d .)
- UPTIME="$(echo $UPTIME / 60 |bc)"
- # Check LoadAverage
- LOADAVERAGE=$(cat /proc/loadavg |cut -f 1 -d ' ')
- # Listing data
- case $format in
- json) json_list ;;
- plain) plain_list ;;
- csv) csv_list ;;
- shell) shell_list |column -t ;;
- esac
- #----------------------------------------------------------#
- # Vesta #
- #----------------------------------------------------------#
- exit
|