日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Linux中创建自己的MOTD[通俗易懂](Download)

發(fā)布時間:2023/12/19 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 Linux中创建自己的MOTD[通俗易懂](Download) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1)什么是MOTD

  motd:是英文縮寫message of the day 。譯文是:每日提示信息,問候報文。那你為什么要用MOTD?其實目的很簡單,是提示進入系統(tǒng)的用戶注意事項,或提示系統(tǒng)運行的概要信息讓用戶更好的了解系統(tǒng)。在Linux系統(tǒng)要實現(xiàn)自己的MOTD,首先需要認識/etc/motd文件。

  •  /etc/motd文件是什么?

    在linux世界中“一切皆文件”,/etc/motd也是眾多文件之一;那它有什么特別之處?/etc/motd文件作用是:每次系統(tǒng)登陸時,通過終端展示一些消息給登陸用戶,如向用戶提示歡迎信息,或提示使用系統(tǒng)的注意事項等等信息像公告板一樣為所有用戶提示信息。然而在/etc/motd文件只能添加靜態(tài)信息,而如果你想在用戶登錄時對提供動態(tài)的系統(tǒng)信息,如IP地址、系統(tǒng)負載等時,/etc/motd就無能為力了。但在/etc/motd顯示靜態(tài)信息內(nèi)容時,可以對靜態(tài)文字增加顏色,以達到對重點信息內(nèi)容的突出顯示。

  此外,作為ssh訪問系統(tǒng)用戶必須配置/etc/ssh/sshd_config文件。

1 vim  /etc/ssh/sshd_config
2 ……
3 PrintMotd yes           #遠程用戶登錄時是否打印/etc/motd文件信息           
4 ……         

 

2)如何顯示靜態(tài)MOTD

  如果想在用戶登陸時顯示靜態(tài)內(nèi)容信息,只需要修改/etc/motd文件。同時還可在/etc/motd文件中還可以添加顏色及背景色,讓原本靜態(tài)內(nèi)容更加生動更具提示效果。要想實現(xiàn)上述效果,必須在靜態(tài)信息內(nèi)容前加上<ESC>[{attr};{fg};{bg}m 來提示xterm虛擬終端怎樣來顯示內(nèi)容。

  • 顯示虛擬終端類型
1 $ env | grep TERM
2 $ set | grep TERM              //或用set
  • 提示終端添加顏色及背景的語句格式
<ESC>[{attr};{fg};{bg}m

  格式描述:
    1.<ESC> :可以在vim中輸入Ctrl+V后再按ESC。

    2.{attr} :表示屬性,包括下劃線,加粗等屬性。

      • 0 Reset All Attributes (return to normal mode) :恢復(fù)通用模式
      • 1 Bright (usually turns on BOLD) :加粗
      • 2 Dim
      • 3 Underline :下劃線
      • 5 Blink
      • 7 Reverse
      • 8 Hidden

    3.{fg} :表示字體顏色

      • 30 Black :黑色
      • 31 Red :紅色
      • 32 Green :綠色
      • 33 Yellow :黃色
      • 34 Blue :藍色
      • 35 Magenta :紫紅色
      • 36 Cyan :青色
      • 37 White :白色

    4.{bg} :表示背景色

      • 40 Black :黑色
      • 41 Red :紅色
      • 42 Green :綠色
      • 43 Yellow :黃色
      • 44 Blue :藍色
      • 45 Magenta :紫紅色
      • 46 Cyan :青色
      • 47 White :白色

  案例:    

1 [root@ecs-elk  ~]#vim /etc/motd
2 
3 ^[[0;31;40m Welcome to Huawei Cloud Service ^[[0;37;40m
4 
5 
6 [root@ecs-elk  ~]#

3)如何顯示動態(tài)MOTD

  靜態(tài)內(nèi)容在提示公共信息上有效,但當(dāng)用戶登錄系統(tǒng)時更多是需要了解系統(tǒng)運行狀態(tài)及一些系統(tǒng)信息。自然就需要顯示動態(tài)的信息內(nèi)容。比如ip地址、硬盤占用、進程數(shù)等。那么怎么來實現(xiàn)上述動態(tài)的內(nèi)容?那么首先看看linux用戶登錄及加載bash配置文件過程:

  用戶登錄時相關(guān)bash配置文件:

    1)全局配置文件:      

      • /etc/profile
      • /etc/profile.d/*.sh
      • /etc/bashrc

    2)個人配置文件:  

      • ~/.bsah_profile
      • ~/.bashrc

  那么當(dāng)一個linux用戶在交互式登錄時這些bash配置文件及/etc/motd加載順序:  

1 #交互式登錄,/etc/motd和shell加載配置文件過程
2 /etc/motd -->/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

  登錄式shell加載配置文件過程:如使用su – tom

1 #如命令: su  - tom
2 #登錄式shell加載配置文件過程
3 /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

  非登錄式shell加載配置文件過程:如使用 su tom

1 #如命令: su tom
2 #非登錄式shell加載配置文件過程
3 ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

  但在測試用戶在交互式登錄時bash配置文件及/etc/motd加載順序,出現(xiàn)如下偏差如圖:

  之后查看相關(guān)bash配置文件,發(fā)現(xiàn)/etc/profile配置文件文中調(diào)用/etc/profile.d/*.sh,而用于驗證的echo顯示命令位于配置文件末尾。故產(chǎn)生認知錯誤。

  注:驗證時 最好仔細看一下相關(guān)配置文件 并將驗證的echo命令位于配置文件前面位置。否則會可能帶來認知錯誤。

  

  綜述:

    因為/etc/motd只能顯示靜態(tài)內(nèi)容,所以想要實現(xiàn)MOTD動態(tài)信息必須通過上述linux用戶登錄時相關(guān)bash配置文件,并在相關(guān)bash配置文件中添加可執(zhí)行腳本命令來實現(xiàn)動態(tài)信息。例如編寫一個shell腳本文件,并將該腳本在/etc/profile配置文件中執(zhí)行。

 1 [root@db57 ~]# vim /usr/src/scripts/system_info.sh
 2 #!/bin/bash
 3   
 4 date=`date "+%F %T"`
 5 head="System's date is: $date"
 6   
 7 kernel=`uname -r`
 8 hostname=`echo $HOSTNAME`
 9 
10 echo
11 echo "++++++++++++++++++++++++++"
12 echo "$head"
13 echo "--------------------------"
14 printf "Kernel :\t%s\n" $kernel
15 printf "HostName:\t%s\n" $hostname
16 
17 [root@db57 ~]#chmod +x /usr/src/scripts/system_info.sh
18 [root@db57 ~]#tail -1 /etc/profile
19 /usr/src/scripts/system_info.sh

注1:在實現(xiàn)動態(tài)信息中除了使用shell腳本外,也可以使用python腳本。

注2:摘自《Linux服務(wù)器安全策略配置-SSH與動態(tài)MOTD(一)》https://yq.aliyun.com/articles/560280

    如果你使用過Debian/Ubuntu分發(fā)版,你可能已經(jīng)發(fā)現(xiàn),Ubuntu默認就已經(jīng)有一個動態(tài)的MOTD信息提示(通過SSH或本地登錄時顯示系統(tǒng)當(dāng)前的一些信息)。在RHEL/CentOS中不可能實現(xiàn)像在Debian/Ubuntu中這樣的功能,因為RHEL/CentOS并沒有提供與之相關(guān)的任何腳本。我們可以通過環(huán)境變量文件,如/etc/profile、/etc/bashrc等,將需要執(zhí)行的命令或腳本添加到這些文件末尾,這樣當(dāng)每次用戶登陸時,系統(tǒng)就會讀取這些文件,執(zhí)行文件里定義好的腳本。除此之外,也可以結(jié)合使用crontab計劃任務(wù),將預(yù)先準備好的腳本,如系統(tǒng)監(jiān)控,異常信息收集通過crontab在后臺定期執(zhí)行,并把收集到的信息重定向?qū)懙?etc/motd文件中。在用戶登錄系統(tǒng)時,就可以顯示這些系統(tǒng)監(jiān)控、異常處理信息了。

    在Ubuntu中,提供了一組腳本在目錄/etc/update-motd.d/中,在用戶登錄時,按照腳本名字前綴的數(shù)字(00-99)順序執(zhí)行,并將這些腳本的輸出保存到文件/run/motd.dynamic中,最終用戶成功登錄后,在登錄的屏幕界面中打印出來。

小結(jié):

/etc/motd文件可實現(xiàn)靜態(tài)MOTD內(nèi)容;動態(tài)MOTD需通過腳本在linux用戶登錄的bash配置文件執(zhí)行,Ubuntu中提供了/etc/update-motd.d/目錄來實現(xiàn)動態(tài)MOTD。

引出問題:

1)xterm虛擬終端,及顏色內(nèi)容顯示

2)linux用戶的交互式登錄;登錄式shell和非登錄式shell

3)printf命令

參考:

http://ju.outofmemory.cn/entry/139743

https://blog.51cto.com/7424593/1922111

https://www.linuxjournal.com/article/8603

https://www.cnblogs.com/justart/p/7688624.html

https://segmentfault.com/a/1190000015684318

https://blog.csdn.net/dreams_deng/article/details/77196444

https://yq.aliyun.com/articles/560280

總結(jié)

以上是生活随笔為你收集整理的Linux中创建自己的MOTD[通俗易懂](Download)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。