#!/bin/bash # Dynamic MOTD generator USER=`whoami` HOSTNAME=`uname -n` NET_IF='eth0' IP4=`ip a show $NET_IF | grep 'inet ' | awk '{print $2}'i | tr -d '\n'` IP6=`ip a show $NET_IF | grep 'inet6 ' | head -1 | awk '{print $2}' | tr -d '\n'` ROOT_USED=`df -Ph | grep ' /$' | awk '{print $3}' | tr -d '\n'` ROOT_TOTAL=`df -Ph | grep ' /$' | awk '{print $2}' | tr -d '\n'` #HDD_USED=`zpool iostat | grep hdd | awk '{print $2}' | tr -d '\n'` #HDD_TOTAL=`df -Ph | grep 'hdd ' | awk '{print $2}' | tr -d '\n'` SSD_USED=`df -Ph | grep 'nextcloud ' | awk '{print $3}' | tr -d '\n'` SSD_TOTAL=`df -Ph | grep 'nextcloud ' | awk '{print $2}' | tr -d '\n'` MEMORY1=`free -t -m | grep "Mem" | awk '{print $3" MB";}'` MEMORY2=`free -t -m | grep "Mem" | awk '{print $2" MB";}'` PSA=`ps -Afl | wc -l` # 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)) upSecs=$((uptime%60)) #System load LOAD1=`cat /proc/loadavg | awk {'print $1'}` LOAD5=`cat /proc/loadavg | awk {'print $2'}` LOAD15=`cat /proc/loadavg | awk {'print $3'}` # Failed logins #LASTLOGIN=$(cat /var/local/lastlogin) #LASTLOGIN_PRETTY=$(date +'%d %B %T' --date "$LASTLOGIN") #FAILS=$(journalctl -u sshd --since "$LASTLOGIN" | egrep "Failed|Invalid" | wc -l) # - Failed logins...........: $FAILS since $LASTLOGIN_PRETTY #Podman containers status if [ -f "/var/local/podman-status" ]; then PODMAN_LAST_UPDATE=$(head -1 /var/local/podman-status) TODAY=$(date --date="Today 00:00" +%s) if [[ "$TODAY" == "$PODMAN_LAST_UPDATE" ]]; then PODMAN_LAST_UPDATE_DAY='today' else DIFF=$(echo "${TODAY}-${PODMAN_LAST_UPDATE}" | bc) if [[ "$DIFF" == 86400 ]];then PODMAN_LAST_UPDATE_DAY='yesterday' else D=$(echo "${DIFF}/86400" | bc) if [[ "$D" -lt 7 ]]; then PODMAN_LAST_UPDATE_DAY="$(date --date=@$PODMAN_LAST_UPDATE +%A)" else PODMAN_LAST_UPDATE_DAY="$D days ago" fi fi fi fi echo " Good $TIME $USER" echo " =========================================================================== - Hostname................: $HOSTNAME - IPv4..................: $IP4 - IPv6..................: $IP6 - Release.................: `cat /etc/redhat-release` - Users...................: `users | wc -w` user(s) logged in =========================================================================== - Current user............: $USER - CPU usage...............: $LOAD1, $LOAD5, $LOAD15 (1, 5, 15 min) - Memory used.............: $MEMORY1 / $MEMORY2 - Swap in use.............: `free -m | tail -n 1 | awk '{print $3}'` MB - Processes...............: $PSA running - System uptime...........: $upDays days $upHours hours $upMins minutes $upSecs seconds - Usage of / .............: $ROOT_USED / $ROOT_TOTAL - Usage of /opt...........: $SSD_USED / $SSD_TOTAL" [ -f "/var/local/podman-status" ] && tail -n +2 /var/local/podman-status | sed "s/WHEN/${PODMAN_LAST_UPDATE_DAY}/" printf "\ ===========================================================================\n" cat /var/local/nc-backup-status printf "\n" if [[ "$(curl -s localhost:8080/status.php | jq '.maintenance')" == "true" ]]; then echo -e " ** Nextcloud in maintenance mode **\n\n" fi if command -v mail > /dev/null && mail -e; then echo "You have mail."; fi if command -v tmux > /dev/null && tmux list-sessions > /dev/null; then echo "TMUX session running."; fi