gistfile1.md
· 3.6 KiB · Markdown
Raw
```
#!/bin/bash
# /etc/update-motd.d/99-mymotd-generator
# OR
# /etc/profile.d/sysinfo.sh
#
# Text Color Variables http://misc.flogisoft.com/bash/tip_colors_and_formatting
tcLtG="\033[00;37m" # LIGHT GRAY
tcDkG="\033[01;30m" # DARK GRAY
tcLtR="\033[01;31m" # LIGHT RED
tcLtGRN="\033[01;32m" # LIGHT GREEN
tcLtBL="\033[01;34m" # LIGHT BLUE
tcLtP="\033[01;35m" # LIGHT PURPLE
tcLtC="\033[01;36m" # LIGHT CYAN
tcW="\033[01;37m" # WHITE
tcRESET="\033[0m"
tcORANGE="\033[38;5;209m"
# Time of day
HOUR=$(date +"%H")
if [ $HOUR -lt 12 -a $HOUR -ge 0 ]; then TIME="morning"
elif [ $HOUR -lt 17 -a $HOUR -ge 12 ]; then TIME="afternoon"
else TIME="evening"
fi
# System uptime
uptime=`cat /proc/uptime | cut -f1 -d.`
upDays=$((uptime/60/60/24))
upHours=$((uptime/60/60%24))
upMins=$((uptime/60%60))
# System + Memory
MEMORY_USED=`free -b | grep Mem | awk '{print $3/$2 * 100.0}'`
SWAP_USED=`free -b | grep Swap | awk '{print $3/$2 * 100.0}'`
NUM_PROCS=`ps aux | wc -l`
# IP первого сетевого интерфейса
LOCAL_IP=$(ip -4 addr show | grep -oP '(?<=inet\s)\d+\.\d+\.\d+\.\d+' | grep -v '^127\.' | head -n 1)
# Имя сервера
HOSTNAME=$(hostname)
# ОS
OS=$(grep PRETTY_NAME /etc/os-release | cut -d= -f2 | tr -d '"')
# Пользователь
USER_NAME=$(whoami)
[ "$USER_NAME" = "root" ] && USER_NAME="${tcLtR}${USER_NAME}${tcRESET}"
# Load average
LOADAVG=$(awk '{print $1" "$2" "$3}' /proc/loadavg)
SYS_LOADS=`cat /proc/loadavg | awk '{print $1}'`
# RAM: всего и свободно (в мегабайтах)
RAM_TOTAL=$(free -m | awk '/Mem:/ {print $2}')
RAM_FREE=$(free -m | awk '/Mem:/ {print $7}')
RAM_FREE_PCT=$(( RAM_FREE * 100 / RAM_TOTAL ))
# Количество CPU
CPU_COUNT=$(nproc)
# Uptime
UPTIME=$(uptime -p)
# HDD: для корневого раздела /
DISK_TOTAL_HUMAN=$(df -h / | awk 'NR==2 {print $2}')
DISK_FREE_HUMAN=$(df -h / | awk 'NR==2 {print $4}')
# Используем df без форматирования для процентов
DISK_TOTAL=$(df -k / | awk 'NR==2 {print $2}')
DISK_FREE=$(df -k / | awk 'NR==2 {print $4}')
DISK_FREE_PCT=$(( DISK_FREE * 100 / DISK_TOTAL ))
echo -e "$tcDkG ==============================================================="
echo -e $tcLtG " Good $TIME! $tcORANGE $LOCAL_IP"
echo -e $tcDkG "==============================================================="
echo -e $tcLtG " - Hostname :$tcW ${$HOSTNAME}"
echo -e $tcLtG " - IP Address :$tcW ${LOCAL_IP:-N/A}"
echo -e $tcLtG " - User :$tcW ${USER_NAME}"
echo -e $tcLtG "==============================================================="
echo -e $tcLtG " - OS Release :$tcW $(lsb_release -s -d)"
echo -e $tcLtG " - Kernel : `uname -a | awk '{print $1" "$3" "$12}'`"
echo -e $tcLtG " - Users : Currently `users | wc -w` user(s) logged on"
echo -e $tcLtG "==============================================================="
echo -e $tcLtG " - Server Time : `date`"
echo -e $tcLtG " - System load : ${SYS_LOADS} / ${NUM_PROCS} processes running"
echo -e $tcLtG " - Load average : ${LOADAVG}"
echo -e $tcLtG " - System uptime : ${upDays} days ${upHours} hours ${upMins} minutes"
echo -e $tcLtG "==============================================================="
echo -e $tcLtG " - CPU : ${CPU_COUNT} CPU"
echo -e $tcLtG " - RAM : ${RAM_TOTAL} MB, ${RAM_FREE} MB (${RAM_FREE_PCT}%) free"
echo -e $tcLtG " - HDD : ${DISK_TOTAL_HUMAN}, ${DISK_FREE_HUMAN} (${DISK_FREE_PCT}%) free"
echo -e $tcLtG " - Swap used % : ${SWAP_USED}"
echo -e $tcDkG "==============================================================="
echo -e $tcRESET ""
```
#!/bin/bash
# /etc/update-motd.d/99-mymotd-generator
# OR
# /etc/profile.d/sysinfo.sh
#
# Text Color Variables http://misc.flogisoft.com/bash/tip_colors_and_formatting
tcLtG="\033[00;37m" # LIGHT GRAY
tcDkG="\033[01;30m" # DARK GRAY
tcLtR="\033[01;31m" # LIGHT RED
tcLtGRN="\033[01;32m" # LIGHT GREEN
tcLtBL="\033[01;34m" # LIGHT BLUE
tcLtP="\033[01;35m" # LIGHT PURPLE
tcLtC="\033[01;36m" # LIGHT CYAN
tcW="\033[01;37m" # WHITE
tcRESET="\033[0m"
tcORANGE="\033[38;5;209m"
# Time of day
HOUR=$(date +"%H")
if [ $HOUR -lt 12 -a $HOUR -ge 0 ]; then TIME="morning"
elif [ $HOUR -lt 17 -a $HOUR -ge 12 ]; then TIME="afternoon"
else TIME="evening"
fi
# System uptime
uptime=`cat /proc/uptime | cut -f1 -d.`
upDays=$((uptime/60/60/24))
upHours=$((uptime/60/60%24))
upMins=$((uptime/60%60))
# System + Memory
MEMORY_USED=`free -b | grep Mem | awk '{print $3/$2 * 100.0}'`
SWAP_USED=`free -b | grep Swap | awk '{print $3/$2 * 100.0}'`
NUM_PROCS=`ps aux | wc -l`
# IP первого сетевого интерфейса
LOCAL_IP=$(ip -4 addr show | grep -oP '(?<=inet\s)\d+\.\d+\.\d+\.\d+' | grep -v '^127\.' | head -n 1)
# Имя сервера
HOSTNAME=$(hostname)
# ОS
OS=$(grep PRETTY_NAME /etc/os-release | cut -d= -f2 | tr -d '"')
# Пользователь
USER_NAME=$(whoami)
[ "$USER_NAME" = "root" ] && USER_NAME="${tcLtR}${USER_NAME}${tcRESET}"
# Load average
LOADAVG=$(awk '{print $1" "$2" "$3}' /proc/loadavg)
SYS_LOADS=`cat /proc/loadavg | awk '{print $1}'`
# RAM: всего и свободно (в мегабайтах)
RAM_TOTAL=$(free -m | awk '/Mem:/ {print $2}')
RAM_FREE=$(free -m | awk '/Mem:/ {print $7}')
RAM_FREE_PCT=$(( RAM_FREE * 100 / RAM_TOTAL ))
# Количество CPU
CPU_COUNT=$(nproc)
# Uptime
UPTIME=$(uptime -p)
# HDD: для корневого раздела /
DISK_TOTAL_HUMAN=$(df -h / | awk 'NR==2 {print $2}')
DISK_FREE_HUMAN=$(df -h / | awk 'NR==2 {print $4}')
# Используем df без форматирования для процентов
DISK_TOTAL=$(df -k / | awk 'NR==2 {print $2}')
DISK_FREE=$(df -k / | awk 'NR==2 {print $4}')
DISK_FREE_PCT=$(( DISK_FREE * 100 / DISK_TOTAL ))
echo -e "$tcDkG ==============================================================="
echo -e $tcLtG " Good $TIME! $tcORANGE $LOCAL_IP"
echo -e $tcDkG "==============================================================="
echo -e $tcLtG " - Hostname :$tcW ${$HOSTNAME}"
echo -e $tcLtG " - IP Address :$tcW ${LOCAL_IP:-N/A}"
echo -e $tcLtG " - User :$tcW ${USER_NAME}"
echo -e $tcLtG "==============================================================="
echo -e $tcLtG " - OS Release :$tcW $(lsb_release -s -d)"
echo -e $tcLtG " - Kernel : `uname -a | awk '{print $1" "$3" "$12}'`"
echo -e $tcLtG " - Users : Currently `users | wc -w` user(s) logged on"
echo -e $tcLtG "==============================================================="
echo -e $tcLtG " - Server Time : `date`"
echo -e $tcLtG " - System load : ${SYS_LOADS} / ${NUM_PROCS} processes running"
echo -e $tcLtG " - Load average : ${LOADAVG}"
echo -e $tcLtG " - System uptime : ${upDays} days ${upHours} hours ${upMins} minutes"
echo -e $tcLtG "==============================================================="
echo -e $tcLtG " - CPU : ${CPU_COUNT} CPU"
echo -e $tcLtG " - RAM : ${RAM_TOTAL} MB, ${RAM_FREE} MB (${RAM_FREE_PCT}%) free"
echo -e $tcLtG " - HDD : ${DISK_TOTAL_HUMAN}, ${DISK_FREE_HUMAN} (${DISK_FREE_PCT}%) free"
echo -e $tcLtG " - Swap used % : ${SWAP_USED}"
echo -e $tcDkG "==============================================================="
echo -e $tcRESET ""