از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
نمایش اطلاعات سرور لینوکس پس از ورود با SSH (MOTD)
تنظیم پیام پس از ورود (MOTD) با SSH در CentOS , Ubuntu , RHEL
سرفصلهای مطلب
اگر بخواهید هر زمان با 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
بلافاصله پس از خروج از سرور و لاگین مجدد اطلاعات را مشاهده خواهید کرد
ست کردن 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
بعد از خروج از سرور و ورود مجدد اطلاعات سرور خود را خواهید دید