Message of the day - MOTD
Konfiguracja MOTD w FreeBSD z kolorowym ASCII art i monitorowaniem systemu
Aby stworzyć atrakcyjny, kolorowy MOTD (Message Of The Day) na FreeBSD z nazwą serwera w stylu retro ASCII art oraz wyświetlaniem bieżącego obciążenia CPU, pamięci RAM i pojemności dysków, można przygotować skrypt bash. Takie MOTD może również zawierać status kluczowych procesów serwera gry.
Przykładowy skrypt MOTD w bash (do umieszczenia np. w /etc/motd.sh):
#!/usr/local/bin/bash
# Kolory ANSI
RED='\033[31m'
GREEN='\033[32m'
YELLOW='\033[33m'
CYAN='\033[36m'
RESET='\033[0m'
# Kolorowy ASCII art nazw serwera (retro styl)
echo -e "${CYAN} __ __ _____ ____ ____ ______ __"
echo -e "| \\/ |_ _|___ \\/ ___|| _ \\ \\ / /"
echo -e "| |\\/| | | | __) \\___ \\| |_) \\ \\ / / "
echo -e "| | | | | | / __/ ___) | _ < \\ V / "
echo -e "|_| |_| |_| |_____|____/|_| \\_\\ \\_/ ${RESET}"
# Pobór średniego obciążenia CPU
LOAD=$(sysctl -n vm.loadavg | awk '{print $2, $3, $4}')
# Pamięć RAM całkowita i wolna (MB)
MEM_TOTAL=$(sysctl -n hw.physmem)
MEM_TOTAL_MB=$((MEM_TOTAL / 1024 / 1024))
PAGE_SIZE=$(sysctl -n hw.pagesize)
FREE_PAGES=$(sysctl -n vm.stats.vm.v_free_count)
MEM_FREE_BYTES=$((FREE_PAGES * PAGE_SIZE))
MEM_FREE_MB=$((MEM_FREE_BYTES / 1024 / 1024))
echo -e "${YELLOW}Aktualne obciążenie CPU:${RESET} ${GREEN}${LOAD}${RESET}"
echo -e "${YELLOW}Pamięć całkowita:${RESET} ${GREEN}${MEM_TOTAL_MB} MB${RESET}"
echo -e "${YELLOW}Wolna pamięć:${RESET} ${GREEN}${MEM_FREE_MB} MB${RESET}"
# Pojemności dysków i procent wolnego miejsca (mount point: % wolnego)
echo -e "${YELLOW}Pojemności dysków (punkt montowania: % wolnego miejsca):${RESET}"
df -h | awk -v CYAN="${CYAN}" -v GREEN="${GREEN}" -v RESET="${RESET}" '
NR>1 {
free_perc = 100 - gensub(/%/, "", "g", $5)
printf "%s%s%s: %s%d%%%s ", CYAN, $6, RESET, GREEN, free_perc, RESET
}
END {print ""}'
# Sprawdzenie statusu procesów gry (game, db, auth)
count_process() {
ps aux | grep -w "$1" | grep -v grep | wc -l
}
COUNT_GAME=$(count_process "game")
COUNT_DB=$(count_process "db")
COUNT_AUTH=$(count_process "auth")
color_status() {
if [ "$1" -gt 0 ]; then
echo -e "${GREEN}RUNNING (${1})${RESET}"
else
echo -e "${RED}NOT RUNNING${RESET}"
fi
}
echo -e "${YELLOW}Status procesów gry MT2SRV:${RESET}"
echo -e "game: $(color_status $COUNT_GAME)"
echo -e "db: $(color_status $COUNT_DB)"
echo -e "auth: $(color_status $COUNT_AUTH)"
# Szczegóły procesów (zielony kolor)
echo -e "${YELLOW}Szczegóły procesów game/db/auth:${RESET}"
ps aux | grep -E 'game|db|auth' | grep -v grep | awk -v GREEN="${GREEN}" -v RESET="${RESET}" '{print GREEN $0 RESET}'
Instrukcje użycia:
- Zapisz powyższy skrypt w pliku
/etc/motd.shi nadaj mu prawa wykonywalne (chmod +x /etc/motd.sh). - Wywołuj ten skrypt z pliku
/etc/motdlub ustaw w/etc/login.confopcjętm=/etc/motd.sh:, aby był uruchamiany przy logowaniu. - Pozwoli to na wyświetlanie przy logowaniu kolorowego, retro motdu zawierającego bieżące dane systemowe oraz status procesów gry.
Dzięki temu MOTD będzie czytelne, estetyczne i funkcjonalne, ułatwiając szybką diagnostykę serwera przy każdym logowaniu.