Files
b1_motd/update_motd.sh

99 lines
3.8 KiB
Bash
Executable File

#!/bin/bash
# Script to create motd with relevant information.
# Based upon script by Luis Felipe Sánchez
# https://github.com/lfelipe1501/Arch-MOTD
# Modyfied by A. Rabjerg
#set -x
# Serveral thing can (should) be customized for your system, those will be marked by the text "EDIT ME"
# Variables
MAIN_STORE="VG-home" # EDIT ME!
# Here you can define any VPS instances you would like info on. # EDIT ME
VPS_0_UP=""
#VPS_0_IP=127.0.0.1
#VPS_0_USER="Batman"
#VPS_0_PORT=1337
#VPS_0_DESC="Batcave mainframe, 512GB 144 Cores" # Text description of VPS
#VPS_0_UP=$(ssh -o connecttimeout=3 -p $VPS_0_port $VPS_0_USER@$VPS_0_IP uptime | awk '{print $3}')
# Collect information
#USERNAME=$($USER)
HOSTNAME=$(uname -n)
KERNEL=$(uname -r)
CPU=$(awk -F '[ :][ :]+' '/^model name/ { print $2; exit; }' /proc/cpuinfo)
ARCH=$(uname -m)
DISCTOT=$(df -h | grep $MAIN_STORE | awk '{print $2"B" }')
DISCFREE=$(df -h | grep $MAIN_STORE | awk '{print $4"B" }')
MEMORY1=$(free -t -h -m | grep "Mem" | awk '{print $7"B";}')
MEMORY2=$(free -t -h -m | grep "Mem" | awk '{print $2"B";}')
# Get External IP, not a beautiful solution
EXTIP=$(curl -s ipecho.net/plain)
INTIP=$(ip a s | grep -E "inet " | grep -E -m1 "eth0|wlan0" | awk '{print $2 " " $(NF)}') # EDIT ME, your interfaces might have a diffrenet name than eth0 or wlan0
LOCATION=$(curl -s "https://tools.keycdn.com/geo.json?host=$EXTIP" | awk -F ":" 'BEGIN { RS=","} {print $0'} | grep -E "city" | awk -F ":" '{print$2}')
# alternative "country_name" / "country_code" / "city"
#Time of day
HOUR=$(date +"%H")
#System uptime
uptime=$(cat /proc/uptime | cut -f1 -d.)
upDays=$((uptime/60/60/24))
upHours=$((uptime/60/60%24))
upMins=$((uptime/60%60))
upSecs=$((uptime%60))
#server uptime
#System load
LOAD1=$(cat /proc/loadavg | awk {'print $1'})
LOAD5=$(cat /proc/loadavg | awk {'print $2'})
LOAD15=$(cat /proc/loadavg | awk {'print $3'})
#Color variable #W="\033[00;37m"
W="\033[0m" #White
B="\033[01;36m" #Blue
R="\033[01;31m" #Red (Unused)
G="\033[01;32m" #Green (Unused)
N="\033[01;34m" #Nice Blue
#Background Colors
Wb="\033[0;49m" #Background Transparent
Yb="\033[01;43m" #Background Yellow
Blb="\033[01;100m" #Background Grey
Bb="\033[01;44m" #Background Blue
Yyb="\033[01;107m" #Background White
echo -e "$N---------------------------------------------------------------"
echo -e " "
echo -e " $B$Bb $Wb $Blb $Wb"
echo -e " $B$Bb $Wb $Bb $Wb $Blb $Wb$N Linux/Open Source"
echo -e " $B$Bb $Wb $Bb $Wb $Yb $Blb $W$N Consulting, Training"
echo -e " $B$Bb $Wb $Bb $Wb $Blb $Wb$N Development & Support"
echo -e " $B$Bb $Wb $Yyb $Blb $Wb$N WWW.B1-SYSTEMS.DE"
echo -e " $B$Bb $Wb $Bb $Wb $Yyb $Blb $Wb"
echo -e " $B$Bb $Wb $Bb $Wb $Yyb $Blb $Wb$N KERNEL :$W $KERNEL"
echo -e " $B$Bb $Wb $Bb $Wb $Yyb $Blb $Wb$N TOT. MEMORY :$W $MEMORY2"
echo -e " $B$Bb $Wb $Bb $Wb $Yyb $Blb $Wb$N FREE MEMORY :$W $MEMORY1"
echo -e " $B$Bb $Wb $Yyb $Wb$N $N EXTERNAL IP :$W $EXTIP $LOCATION"
echo -e " $N S Y S T E M S $N INTERNAL IP :$W $INTIP"
echo -e " $N"
echo -e "$N---------------------------------------------------------------"
echo -e "$N HD FREE / TOTAL :$W $DISCFREE / $W$DISCTOT "
echo -e "$N LOAD AVG :$W $LOAD1, $LOAD5, $LOAD15 "
echo -e "$N UPTIME :$W $upDays Days $upHours:$upMins "
echo -e "$N---------------------------------------------------------------"
echo -e " $W Please do not share your login and use$G sudo$W for$R root$W access "
echo -e "$N---------------------------------------------------------------"
echo -e "$N"
echo -e "$N $VPS_0_DESC uptime = $VPS_0_UP days "
echo -e "$N "
echo -e "$N---------------------------------------------------------------"
echo -e "$N "