118 lines
3.0 KiB
Bash
118 lines
3.0 KiB
Bash
#/bin/bash
|
|
#Copyright (c) [2019] Huawei Technologies Co., Ltd.
|
|
#generic-release is licensed under the Mulan PSL v2.
|
|
#You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
#You may obtain a copy of Mulan PSL v2 at:
|
|
# http://license.coscl.org.cn/MulanPSL2
|
|
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
|
|
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
|
|
#PURPOSE.
|
|
#See the Mulan PSL v2 for more details.
|
|
|
|
# Welcome
|
|
welcome=$(uname -r)
|
|
|
|
#function
|
|
function get_mem_usage {
|
|
differ=`expr $1 - $2 - $3 - $4 - $5`
|
|
milli=`expr $differ \* 10000 / $1`
|
|
percent=`expr $differ \* 1000 / $1`
|
|
predominant=`expr $differ \* 100 / $1`
|
|
|
|
round=`expr $milli % 10`
|
|
if [[ ${round} -ge 5 ]];then
|
|
mid=`expr $percent % 10`
|
|
last=`expr $mid + 1`
|
|
else
|
|
last=`expr $percent % 10`
|
|
fi
|
|
echo "${predominant}.${last}%"
|
|
}
|
|
|
|
function get_swap_mem {
|
|
swap_diff=`expr $1 - $2`
|
|
swap_milli=`expr $swap_diff \* 10000 / $1`
|
|
swap_percent=`expr $swap_diff \* 1000 / $1`
|
|
swap_dominant=`expr $swap_diff \* 100 / $1`
|
|
|
|
swap_round=`expr $swap_milli % 10`
|
|
if [[ ${round} -ge 5 ]];then
|
|
swap_mid=`expr $swap_percent % 10`
|
|
swap_last=`expr $swap_mid + 1`
|
|
else
|
|
swap_last=`expr $swap_percent % 10`
|
|
fi
|
|
echo "${swap_dominant}.${swap_last}%"
|
|
}
|
|
|
|
# Memory
|
|
memory_total=$(cat /proc/meminfo | awk '/^MemTotal:/ {printf($2)}')
|
|
memory_free=$(cat /proc/meminfo | awk '/^MemFree:/ { printf($2)}')
|
|
buffers=$(cat /proc/meminfo | awk '/^Buffers:/ { printf($2)}')
|
|
cached=$(cat /proc/meminfo | awk '/^Cached:/ { printf($2)}')
|
|
sreclaimable=$(cat /proc/meminfo | awk '/^SReclaimable:/ { printf($2)}')
|
|
swap_total=$(cat /proc/meminfo | awk '/^SwapTotal:/ { printf($2)}')
|
|
swap_free=$(cat /proc/meminfo | awk '/^SwapFree:/ { printf($2)}')
|
|
|
|
if [[ $memory_total -gt 0 ]]
|
|
then
|
|
memory_usage=`get_mem_usage $memory_total $memory_free $buffers $cached $sreclaimable`
|
|
else
|
|
memory_usage=0.0%
|
|
fi
|
|
|
|
# Swap memory
|
|
if [[ $swap_total -gt 0 ]]
|
|
then
|
|
swap_mem=`get_swap_mem $swap_total $swap_free`
|
|
else
|
|
swap_mem=0.0%
|
|
fi
|
|
|
|
# Usage
|
|
usageof=$(df -h / | awk '/\// {print $(NF-1)}')
|
|
|
|
# System load
|
|
load_average=$(awk '{print $1}' /proc/loadavg)
|
|
|
|
# WHO I AM
|
|
whoiam=$(whoami)
|
|
|
|
# Time
|
|
time_cur=$(date)
|
|
|
|
# Processes
|
|
processes=$(ps aux | wc -l)
|
|
|
|
# Users
|
|
user_num=$(users | wc -w)
|
|
|
|
# Ip address
|
|
ip_pre=""
|
|
if [ -x "/sbin/ip" ]
|
|
then
|
|
ip_pre=$(/sbin/ip a | grep inet | grep -v "127.0.0.1" | grep -v inet6 | awk '{print $2}')
|
|
fi
|
|
|
|
echo -e "\n"
|
|
echo -e "Welcome to $welcome\n"
|
|
echo -e "System information as of time: \t$time_cur\n"
|
|
echo -e "System load: \t\033[0;33;40m$load_average\033[0m"
|
|
echo -e "Processes: \t$processes"
|
|
echo -e "Memory used: \t$memory_usage"
|
|
echo -e "Swap used: \t$swap_mem"
|
|
echo -e "Usage On: \t$usageof"
|
|
for line in $ip_pre
|
|
do
|
|
ip_address=${line%/*}
|
|
echo -e "IP address: \t$ip_address"
|
|
done
|
|
echo -e "Users online: \t$user_num"
|
|
if [ "$whoiam" == "root" ]
|
|
then
|
|
echo -e "\n"
|
|
else
|
|
echo -e "To run a command as administrator(user \"root\"),use \"sudo <command>\"."
|
|
fi
|
|
|