From 90040493dada036c67d1da23cf4a174288c53db4 Mon Sep 17 00:00:00 2001 From: Rabjerg Date: Mon, 11 Nov 2019 03:26:10 +0100 Subject: [PATCH] Updated with better bash syntax, added customizeable VPS uptime. --- update_motd.sh | 65 ++++++++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/update_motd.sh b/update_motd.sh index 1365c49..5b99275 100755 --- a/update_motd.sh +++ b/update_motd.sh @@ -4,49 +4,57 @@ # 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}') -#Define output file # 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 VG-home | awk '{print $2"B" }'` -DISCFREE=`df -h | grep VG-home | 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";}'` +#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 -# modify the grep in INTIP [wlp|enp] to fit the name of your interfaces -EXTIP=`curl -s ipecho.net/plain` -INTIP=`ip addr show | grep -E -m 1 "inet.[0-2][0-9][0-9]\..{1,}[wlp|enp][0-9]{1,2}s[0-9]{1,2}$" | awk '{print $2}'` -LOCATION=`curl -s "https://tools.keycdn.com/geo.json?host=$EXTIP" | awk -F ":" 'BEGIN { RS=","} {print $0'} | grep -E "city" | awk -F ":" '{print$2}'` +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") -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.` +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 -# serverUp=$(ssh -o connecttimeout=3 -p 27272 b1@location uptime | awk '{print $5}') #System load -LOAD1=`cat /proc/loadavg | awk {'print $1'}` -LOAD5=`cat /proc/loadavg | awk {'print $2'}` -LOAD15=`cat /proc/loadavg | awk {'print $3'}` +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 @@ -61,7 +69,6 @@ Yb="\033[01;43m" #Background Yellow Blb="\033[01;100m" #Background Grey Bb="\033[01;44m" #Background Blue Yyb="\033[01;107m" #Background White -#N="\033[01;34m" echo -e "$N---------------------------------------------------------------" echo -e " " @@ -71,7 +78,7 @@ 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 $ARCH" +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" @@ -80,12 +87,12 @@ 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/d $upHours/h $upMins/m $upSecs/s " +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 # Core, #GB uptime = $serverUp days " +echo -e "$N $VPS_0_DESC uptime = $VPS_0_UP days " echo -e "$N " echo -e "$N---------------------------------------------------------------" echo -e "$N "