Красивый Message of the Day (MOTD) в CentOS 7

Message of the Day (MOTD) - это сообщение, отображаемое пользователям при входе в систему, игру или онлайн-платформу, используемое для обмена важной информацией, например объявлениями, сведениями о техническом обслуживании системы или акциями сервера. Очень неудобно, когда заходишь на сервер по ssh, а тебя встречает обычное черное окошко, если серверов много, около 50, то это проблема, конечно можно поправить конфигурационный файл ssh , но мы у себя делаем более красиво =) Не спрашивайте, почему на некоторых серверах остался Ceentos 7 в 2025 году, отвечу - так исторически сложилось =)

Мы можем настроить красивый Message of the Day (MOTD) в CentOS 7, используя несколько методов. Один из распространенных способов - использовать пакет update-motd, но в CentOS 7 его нет по умолчанию. Вместо этого мы можем использовать скрипты в /etc/update-motd.d/ (как в Ubuntu) или просто отредактировать /etc/motd. Однако в CentOS 7 традиционно для изменения MOTD используется файл /etc/motd, который является статическим. Но мы можем сделать динамический MOTD с помощью скриптов, которые будут запускаться при входе через SSH. Так и сделаем, есть, насколько мне известно, еще пару способов, но остановимся на скриптах. Установим необходимые зависимости:

sudo yum install -y epel-release
sudo yum install -y figlet lolcat

figlet создает ASCII-арт из текста. lolcat добавляет цветовой градиент, короче для подсветки нашего текста Кстати, lolcat можно установить так:

yum install -y ruby rubygems
gem install lolcat
echo "Hello World" | lolcat

Создадим папку, потому что в Centos 7 её нет, в отличии от ubuntu

sudo mkdir -p /etc/update-motd.d/

Создадим там файл 10-sysinfo.sh с содержимым:

#!/bin/bash

# Цвета
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
RESET='\033[0m'

# Информация о системе
echo -e "${GREEN}Добро пожаловать на сервер: ${BLUE}$(hostname)${RESET}"
echo -e "${YELLOW}Дата и время: ${RESET}$(date)"
echo -e "${YELLOW}Время работы: ${RESET}$(uptime -p)"
echo -e "${YELLOW}Загрузка CPU: ${RESET}$(uptime | awk -F'load average:' '{ print $2 }')"
echo -e "${YELLOW}Память: ${RESET}$(free -h | awk '/Mem:/ { print $3 "/" $2 }')"
echo -e "${YELLOW}Диск: ${RESET}$(df -h / | awk 'NR==2 { print $3 "/" $2 " (" $5 ")" }')"
echo -e "${YELLOW}IP-адрес: ${RESET}$(hostname -I | awk '{print $1}')"
# Количество неудачных входов из логов
failed_logins=$(grep "Failed password" /var/log/secure | grep -E "$(date +'%b %d')" | wc -l)
echo -e "${YELLOW}Неудачных попыток входа сегодня: ${RED}$failed_logins${RESET}"

# Последние неудачные попытки (первые 3)
echo -e "${YELLOW}Последние неудачные попытки:${RESET}"
grep "Failed password" /var/log/secure | tail -3 | while read line; do
    echo -e "${RED}  $line${RESET}"
done

Теперь делаем его исполняемым

sudo chmod +x /etc/update-motd.d/10-sysinfo

Теперь создадим скрипт для ASCII-арта 20-logo.sh и тоже делаем его исполняемым

#!/bin/bash

echo -e "${BLUE}"
figlet -f slant "CentOS 7" | lolcat
echo -e "${RESET}"

Остался последний скрипт motd.sh, который будет запускать все скрипты из /etc/update-motd.d/ и делаем его исполняемым

#!/bin/bash

for script in /etc/update-motd.d/*; do
    [ -x "$script" ] && $script
done

Отредактируем конфигурационный файл

sudo nano /etc/ssh/sshd_config

и установим параметр:

PrintMotd no

Перезагружаем shh

sudo systemctl reload sshd

Получить должно вот так:

Комментарии (0)

Оставить комментарий

Пока нет комментариев. Будьте первым!