Son aktivite 1765299053

Генератор MOTH (message of the day) сообщений

Revizyon ace5fc5f9618642e48f155f2b0db12e644fd8b8e

gistfile1.txt Ham
1```
2#!/bin/bash
3# /etc/update-motd.d/99-mymotd-generator
4# OR
5# /etc/profile.d/sysinfo.sh
6#
7
8# Text Color Variables http://misc.flogisoft.com/bash/tip_colors_and_formatting
9tcLtG="\033[00;37m" # LIGHT GRAY
10tcDkG="\033[01;30m" # DARK GRAY
11tcLtR="\033[01;31m" # LIGHT RED
12tcLtGRN="\033[01;32m" # LIGHT GREEN
13tcLtBL="\033[01;34m" # LIGHT BLUE
14tcLtP="\033[01;35m" # LIGHT PURPLE
15tcLtC="\033[01;36m" # LIGHT CYAN
16tcW="\033[01;37m" # WHITE
17tcRESET="\033[0m"
18tcORANGE="\033[38;5;209m"
19
20# Time of day
21HOUR=$(date +"%H")
22if [ $HOUR -lt 12 -a $HOUR -ge 0 ]; then TIME="morning"
23elif [ $HOUR -lt 17 -a $HOUR -ge 12 ]; then TIME="afternoon"
24else TIME="evening"
25fi
26
27# System uptime
28uptime=`cat /proc/uptime | cut -f1 -d.`
29upDays=$((uptime/60/60/24))
30upHours=$((uptime/60/60%24))
31upMins=$((uptime/60%60))
32
33# System + Memory
34MEMORY_USED=`free -b | grep Mem | awk '{print $3/$2 * 100.0}'`
35SWAP_USED=`free -b | grep Swap | awk '{print $3/$2 * 100.0}'`
36NUM_PROCS=`ps aux | wc -l`
37
38# IP первого сетевого интерфейса
39LOCAL_IP=$(ip -4 addr show | grep -oP '(?<=inet\s)\d+\.\d+\.\d+\.\d+' | grep -v '^127\.' | head -n 1)
40
41# Имя сервера
42HOSTNAME=$(hostname)
43
44# ОS
45OS=$(grep PRETTY_NAME /etc/os-release | cut -d= -f2 | tr -d '"')
46
47# Пользователь
48USER_NAME=$(whoami)
49[ "$USER_NAME" = "root" ] && USER_NAME="${tcLtR}${USER_NAME}${tcRESET}"
50
51# Load average
52LOADAVG=$(awk '{print $1" "$2" "$3}' /proc/loadavg)
53SYS_LOADS=`cat /proc/loadavg | awk '{print $1}'`
54
55# RAM: всего и свободно (в мегабайтах)
56RAM_TOTAL=$(free -m | awk '/Mem:/ {print $2}')
57RAM_FREE=$(free -m | awk '/Mem:/ {print $7}')
58RAM_FREE_PCT=$(( RAM_FREE * 100 / RAM_TOTAL ))
59
60# Количество CPU
61CPU_COUNT=$(nproc)
62
63# Uptime
64UPTIME=$(uptime -p)
65
66# HDD: для корневого раздела /
67DISK_TOTAL_HUMAN=$(df -h / | awk 'NR==2 {print $2}')
68DISK_FREE_HUMAN=$(df -h / | awk 'NR==2 {print $4}')
69
70# Используем df без форматирования для процентов
71DISK_TOTAL=$(df -k / | awk 'NR==2 {print $2}')
72DISK_FREE=$(df -k / | awk 'NR==2 {print $4}')
73DISK_FREE_PCT=$(( DISK_FREE * 100 / DISK_TOTAL ))
74
75echo -e "$tcDkG ==============================================================="
76echo -e $tcLtG " Good $TIME! $tcORANGE $LOCAL_IP"
77echo -e $tcDkG "==============================================================="
78echo -e $tcLtG " - Hostname :$tcW ${$HOSTNAME}"
79echo -e $tcLtG " - IP Address :$tcW ${LOCAL_IP:-N/A}"
80echo -e $tcLtG " - User :$tcW ${USER_NAME}"
81echo -e $tcLtG "==============================================================="
82echo -e $tcLtG " - OS Release :$tcW $(lsb_release -s -d)"
83echo -e $tcLtG " - Kernel : `uname -a | awk '{print $1" "$3" "$12}'`"
84echo -e $tcLtG " - Users : Currently `users | wc -w` user(s) logged on"
85echo -e $tcLtG "==============================================================="
86echo -e $tcLtG " - Server Time : `date`"
87echo -e $tcLtG " - System load : ${SYS_LOADS} / ${NUM_PROCS} processes running"
88echo -e $tcLtG " - Load average : ${LOADAVG}"
89echo -e $tcLtG " - System uptime : ${upDays} days ${upHours} hours ${upMins} minutes"
90echo -e $tcLtG "==============================================================="
91echo -e $tcLtG " - CPU : ${CPU_COUNT} CPU"
92echo -e $tcLtG " - RAM : ${RAM_TOTAL} MB, ${RAM_FREE} MB (${RAM_FREE_PCT}%) free"
93echo -e $tcLtG " - HDD : ${DISK_TOTAL_HUMAN}, ${DISK_FREE_HUMAN} (${DISK_FREE_PCT}%) free"
94echo -e $tcLtG " - Swap used % : ${SWAP_USED}"
95echo -e $tcDkG "==============================================================="
96echo -e $tcRESET ""
97
98```