Вывод информации о системе при авторизации по SSH

Вывод информации о системе при авторизации по SSH

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Вывод актуальной информации о системе при авторизации по SSH

Сразу при подключении к серверу получаем актуальные данные о загрузке системы, использование памяти и дискового пространства, а также IP адрес активного интерфейса.

Создаем скрипт в удобном для нас месте:

login_info.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash

SystemMountPoint="/";
LinesPrefix=" ";
b=$(tput bold); n=$(tput sgr0);

SystemLoad=$(cat /proc/loadavg | cut -d" " -f1);
ProcessesCount=$(cat /proc/loadavg | cut -d"/" -f2 | cut -d" " -f1);

MountPointInfo=$(/bin/df -Th $SystemMountPoint 2>/dev/null | tail -n 1);
MountPointFreeSpace=( \
$(echo $MountPointInfo | awk '{ print $6 }') \
$(echo $MountPointInfo | awk '{ print $3 }') \
);
UsersOnlineCount=$(users | wc -w);

UsedRAMsize=$(free | awk 'FNR == 3 {printf("%.0f", $3/($3+$4)*100);}');

localIPaddr=$(hostname -I);

if [ ! -z "${LinesPrefix}" ] && [ ! -z "${SystemLoad}" ]; then
echo -e "${LinesPrefix}${b}System load:${n}\t${SystemLoad}\t\t\t${LinesPrefix}${b}Processes:${n}\t\t${ProcessesCount}";
fi;

if [ ! -z "${MountPointFreeSpace[0]}" ] && [ ! -z "${MountPointFreeSpace[1]}" ]; then
echo -ne "${LinesPrefix}${b}Usage of $SystemMountPoint:${n}\t${MountPointFreeSpace[0]} of ${MountPointFreeSpace[1]}\t\t";
fi;
echo -e "${LinesPrefix}${b}Users logged in:${n}\t${UsersOnlineCount}";

if [ ! -z "${UsedRAMsize}" ]; then
echo -ne "${LinesPrefix}${b}Memory usage:${n}\t${UsedRAMsize}%\t\t\t";
fi;
echo -e "${LinesPrefix}${b}Local IP address:${n}\t${localIPaddr}";

Настраиваем привилегии доступа:

1
chown root:root /home/script/login_info.sh && chmod 755 /home/script/login_info.sh

Изменим /etc/bashrc добавив в конец файла следующие строки:

1
2
3
4
5
...
systemInfoScript="/home/script/login_info.sh";
if [[ -n $SSH_CONNECTION ]] && [ -x "$systemInfoScript" ]; then
/bin/bash $systemInfoScript; echo "";
fi;

Разлогинимся и производим авторизацию по новой.
Результат будет следующим:

1
2
3
4
5
Authenticated to XXX.XXX.XXX.XXX ([XXX.XXX.XXX.XXX]:XXXXXX).
Last login: Tue Jun 7 20:01:49 2016 from XX.XX.XX.XX
System load: 0.06 Processes: 137
Usage of /: 36% of 37G Users logged in: 1
Memory usage: 0% Local IP address: XXX.XXX.XXX.XXX

Другую информацию о системе, при желании, можно настроить на ваше усмотрение.

On this page