وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

نمایش اطلاعات سرور لینوکس پس از ورود با SSH (MOTD)

تنظیم پیام پس از ورود (MOTD) با SSH در CentOS , Ubuntu , RHEL

0 ۲۱۸
زمان لازم برای مطالعه: 3 دقیقه

اگر بخواهید هر زمان با SSH وارد سرورمجازی یا اختصاصی لینوکس ( سنت او اس یا اوبونتو )  می شوید سیستم به شما اطلاعات سروری که به آن لاگین کردید را نمایش دهد طبق این آموزش پیش بروید ، به این سیستم Message of the Day گفته می شود

اطلاعاتی که در این بخش نمایش داده می شود را میتوانید مطابق نیاز خود و نوع کاربری سرور انتخاب کنید ، ما معمولا اطلاعات سرور مشتری را در این قسمت قرار میدهیم ،

اگر چه شما میتوانید از کد زیر برای دریافت اطلاعات کلی از سروری که به آن وارد شده اید دریافت کنید

اسکریپت نمایش اطلاعات سرور پس از سرور به عنوان MOD

این اسکریپت را من با نام on_login.sh ایحاد کردم ، بعد از ایجاد فایل محتوای زیر را در آن کپی کنید و در مراحل بعد خواهیم گفت برای هر سیستم عامل چگونه از ان استفاده کنید

#! /usr/bin/env bash
# Basic info
HOSTNAME=`uname -n`
ROOT=`df -Ph | grep xvda1 | awk '{print $4}' | tr -d '\n'`

# System load
MEMORY1=`free -t -m | grep Total | awk '{print $3" MB";}'`
MEMORY2=`free -t -m | grep "Mem" | awk '{print $2" MB";}'`
LOAD1=`cat /proc/loadavg | awk {'print $1'}`
LOAD5=`cat /proc/loadavg | awk {'print $2'}`
LOAD15=`cat /proc/loadavg | awk {'print $3'}`

echo "
===============================================
 - Hostname............: $HOSTNAME
 - Disk Space..........: $ROOT remaining
===============================================
 - 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
===============================================
"

اسکریپت پیشرفته تر نمایش اطلاعات در MOD

#!/bin/bash
 
#
# Installation:
#
# 1. vi /etc/profile
# /usr/local/bin/dynamic_motd # Place at the bottom
#
# 2. copy this script into
# /usr/local/bin/dynamic_motd
#
# 3. chmod +x /usr/local/bin/dynamic_motd
#
# THANKS TO:
# https://gist.github.com/cha55son/6042560
# https://silvinux.wordpress.com/2015/01/04/dynamic-motd-centosredhat/
#
 
USER=`whoami`
HOSTNAME=`uname -n`
IP=`hostname -I`
 
# disk usage on /
ROOT=`df -Ph / | awk '/\// {print "used:",$3,"/",$2," ( free:",$4,")"}'`
ROOT_USAGE=`df -h / | awk '/\// {print $5}'|grep -v "^$"`
 
# get memory details and percentage used
MEMORY=`free -mh | grep "Mem" | awk '{print "used:",$4,"/",$2,"( free: ",$3,")"}'`
MEM_USAGE=`free -m | grep "Mem" | awk '{printf("%3.1f%%", (($3/$2)*100))}'`
 
# get swap file details
SWAP=`free -mh | grep "Swap" | awk '{print "used:",$4,"/",$2,"( free: ",$3,")"}'`
 
# get processes
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 (1/5/15 minutes)
LOAD1=`cat /proc/loadavg | awk {'print $1'}`
LOAD5=`cat /proc/loadavg | awk {'print $2'}`
LOAD15=`cat /proc/loadavg | awk {'print $3'}`
 
COLOR_COLUMN="\e[1m-"
COL_WHITE="\e[39m"
COL_RED="\e[31m"
COL_GREEN="\e[32m"
COL_YELLOW="\e[33m"
RESET_COLORS="\e[0m"
 
echo -e "
=============================== SYSTEM ====================================
$COLOR_COLUMN- Current usr$RESET_COLORS \t: $COL_WHITE $USER $RESET_COLORS
$COLOR_COLUMN- Hostname$RESET_COLORS \t\t: $COL_YELLOW $HOSTNAME $RESET_COLORS
$COLOR_COLUMN- IP Address$RESET_COLORS \t\t: $COL_YELLOW $IP $RESET_COLORS
 
$COLOR_COLUMN- Release$RESET_COLORS \t\t: $COL_GREEN `cat /etc/redhat-release` $RESET_COLORS
$COLOR_COLUMN- System uptime$RESET_COLORS \t: $COL_WHITE $upDays days, $upHours hours, $upMins minutes, $upSecs seconds $RESET_COLORS
$COLOR_COLUMN- Users$RESET_COLORS \t\t: $COL_WHITE Currently `users | wc -w` user(s) logged on $RESET_COLORS
 
============================== SYSINFO ==================================$RESET_COLORS
$COLOR_COLUMN- CPU usage$RESET_COLORS \t\t: $COL_WHITE $LOAD1 - $LOAD5 - $LOAD15 (1-5-15 min) $RESET_COLORS
$COLOR_COLUMN- Memory usage$RESET_COLORS \t: $COL_WHITE $MEM_USAGE $RESET_COLORS
$COLOR_COLUMN- Memory$RESET_COLORS \t\t: $COL_WHITE $MEMORY $RESET_COLORS
$COLOR_COLUMN- Swap in use$RESET_COLORS \t: $COL_WHITE $SWAP $RESET_COLORS
$COLOR_COLUMN- Processes$RESET_COLORS \t\t: $COL_WHITE $PSA running $RESET_COLORS
$COLOR_COLUMN- Disk space /$RESET_COLORS \t: $COL_WHITE $ROOT $RESET_COLORS
$COLOR_COLUMN- Disk usage /$RESET_COLORS \t: $COL_WHITE $ROOT_USAGE $RESET_COLORS
===========================================================================
"
 

ست کردن MOD روی Ubuntu

در اوبونتو ایجاد این پیام خیلی ساده است ، کافی است فایل حاوی اسکریپت فوق را در دایرکتوری /etc/update-motd.d قرار بدهید

sudo mv on_login.sh /etc/update-motd.d/05-info
sudo chmod +x /etc/update-motd.d/05-info

بلافاصله پس از خروج از سرور و لاگین مجدد اطلاعات را مشاهده خواهید کرد

پیشنهاد می‎کنیم بخوانید:
معرفی و دانلود جدیدترین نسخه Ubuntu 20.04

ست کردن MOD روی CentOS

ست کردن پیام روز روی سنت او اس به تنظیمات بیشتری نیاز دارد

ابتدا باید PrintMotd را در فایل /etc/ssh/sshd_config به no تغییر بدهید ، توجه کنید باید ابتدا آن را از کانت خارح و سپس yes را به no تغییر بدهید

PrintMotd no

دستور فوق به ازای هر ورود فایل /etc/motd را که یک متن ساده است را نمایش میدهد ( میتوانید محتوای متنی ساده خود را در آن قرار دهید )

بعد از این تغیی سرویس SSH را ریست کنید

sudo service sshd restart

حالا کافی است فایل اسکریپت ایجاد شده فوق را در /etc/profile.d کپی کنید

sudo mv on_login.sh /etc/profile.d/login-info.sh

بعد از خروج از سرور و ورود مجدد اطلاعات سرور خود را خواهید دید

منابع : منبع 1  منبع 2

 

دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید