ansible-role-common/templates/update-motd.d/20-sysinfo

94 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
. /etc/update-motd.d/colors
warnvalue(){
value=$1
limit=$2
if [ $value -gt $limit ]
then
echo -n "$RED_BACK$value"
else
echo -n "$NONE$value"
fi
}
printloadavg() {
read one five fifteen rest < /proc/loadavg
echo -e "$LIGHT_GREEN Charge CPU :$NONE $one (1min) / $five (5min) / $fifteen (15min)"
}
printcpu() {
proc=$(cat /proc/cpuinfo | grep model | cut -c14- | sed -n "2 p")
proc=$(echo "${proc}" | sed 's/^ *//g')
cores=$(cat /proc/cpuinfo | grep -i "^processor" | wc -l)
echo -e "$LIGHT_GREEN Processeur :$NONE $proc ($cores cores)"
}
printram(){
memfree=$(cat /proc/meminfo | grep MemAvailable | awk {'print $2'})
memtotal=$(cat /proc/meminfo | grep MemTotal | awk {'print $2'})
mempctused=$((($memtotal - $memfree) * 100 / $memtotal))
swaptotal=$(cat /proc/meminfo | grep SwapTotal | awk {'print $2'})
swapfree=$(cat /proc/meminfo | grep SwapFree | awk {'print $2'})
swappctused=$((($swaptotal - $swapfree) * 100 / $swaptotal))
echo -n -e "$LIGHT_GREEN RAM usage : $(warnvalue $mempctused 80)%$NONE / $(($memtotal/1024)) MB Total"
echo -e "$LIGHT_GREEN Swap usage : $(warnvalue $swappctused 50)%$NONE / $(($swaptotal/1024)) MB Total"
}
printprocesses(){
process=$(ps ax | wc -l | tr -d " ")
echo -e "$LIGHT_GREEN Processus :$NONE $process"
}
printloggedin(){
connecteduser=$(who | wc -l)
echo -e "$LIGHT_GREEN Utilisateurs connectes :$NONE $connecteduser"
}
printserverid(){
fqdn=$(hostname -f)
addrip=$(hostname -I)
echo -e "$LIGHT_GREEN FQDN :$NONE $fqdn$LIGHT_GREEN Adresse IP :$NONE $addrip"
}
printuptime(){
uptime=$(uptime -p)
echo -e "$LIGHT_GREEN Uptime :$NONE $uptime"
last -x 2> /dev/null | grep reboot 1> /dev/null && /usr/bin/last -x 2> /dev/null | grep reboot | head -2 | sed 's/^/ /g' || echo " Pas de shutdown enregistré"
last -x 2> /dev/null|grep shutdown 1> /dev/null && /usr/bin/last -x 2> /dev/null|grep shutdown|head -2 | sed 's/^/ /g' || echo " Pas de shutdown enregistré"
}
printdiskline() {
pattern=$1
diskused=$(df -h | grep $pattern | awk {'print $5'} | tr -d "%")
disktotal=$(df -h | grep $pattern | awk {'print $2'})
inodesused=$(df -i | grep $pattern | awk {'print $5'} | tr -d "%")
echo -n -e "$LIGHT_GREEN Disque$YELLOW $pattern$LIGHT_GREEN\t: $(warnvalue $diskused 90)% / $disktotal$NONE"
echo -e "\t$LIGHT_GREEN Inodes$LIGHT_GREEN\t: $(warnvalue $inodesused 90)%$NONE"
}
printdisklines() {
for disk in $(mount |grep /dev/mapper/system | cut -d ' ' -f 1)
do
printdiskline $disk
done
for disk in $(mount |grep /dev/mapper/data | cut -d ' ' -f 1)
do
printdiskline $disk
done
}
printserverid
printcpu
printloadavg
printram
printprocesses
printloggedin
printuptime
printdisklines