Help us understand the problem. What is going on with this article?

サーバログイン時にカッコイイメッセージを表示する(CentOS 7.1編)

More than 3 years have passed since last update.

はじめに

Message Of The Day (MOTD)意識してますか?
motdを編集する事で、コンソールアクセスやSSHログイン時にメッセージを表示する事が出来ます。

687474703a2f2f692e696d6775722e636f6d2f534632425279342e706e67.png

固定メッセージを表示しておいても良いですが、motd動的に生成する事で、サーバのステータスや構成情報を表示する事が出来ます。

最近、構築や運用の自動化が進んだ事で、サーバへ直接ログインする機会は減っている人も多いかと思いますが、そんな人こそ、いざという時にログインした時にざっと情報確認が出来る様にmotdをカスタマイズしてみてはどうでしょうか。

Linuxディストリビューションの中には、 update-motd というmotdの動的生成に特化したツールもありますが、今回はそれに頼らない方法で実現したいと思います。

FigletScreenfetch を用いたmotd動的生成方法を紹介

Figletを使ったホスト名とステータス表示

まずは、figlet というコマンドを活用したmotd生成の紹介です。
figletは文字列をアスキーアートで表示してくれるツールです。
自分は、強調したいホスト名等の重要情報を表示する時に、キャラクターベースの世界で差異を付けるために使っています。

  • 利用例

    # /usr/bin/figlet $(hostname)
     _____ _       _      _  _____         _   ____
    |  ___(_) __ _| | ___| ||_   _|__  ___| |_/ ___|  ___ _ ____   _____ _ __
    | |_  | |/ _` | |/ _ \ __|| |/ _ \/ __| __\___ \ / _ \ '__\ \ / / _ \ '__|
    |  _| | | (_| | |  __/ |_ | |  __/\__ \ |_ ___) |  __/ |   \ V /  __/ |
    |_|   |_|\__, |_|\___|\__||_|\___||___/\__|____/ \___|_|    \_/ \___|_|
             |___/
    

CentOS 7.1の場合

  • 完成図 figlet_CentOS_login.png

figletコマンドをEPELリポジトリからインストール

# /usr/bin/yum --enablerepo=epel -y install figlet
epel レポジトリが未設定の場合は下記を実行してから上記を実施する
# /bin/rpm --import http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL
# /bin/rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/7/$(/bin/uname -m)/e/epel-release-7-5.noarch.rpm
# /bin/sed -i.org -e "s/enabled.*=.*1/enabled=0/g" /etc/yum.repos.d/epel.repo 

motd動的生成スクリプトをgistから取得し、実行権限を付与

# /usr/bin/wget --no-check-certificate -P /usr/local/bin/ 'https://gist.githubusercontent.com/ysaotome/5997652/raw/update_motd_for_figlet.sh'
# /bin/chmod 755 /usr/local/bin/update_motd_for_figlet.sh

試しに1回実行した上で、実行結果を確認

# /usr/local/bin/update_motd_for_figlet.sh
# cat /etc/motd
                 ______ _         __       __  ______             __  _____
                / ____/(_)____ _ / /___   / /_/_  __/___   _____ / /_/ ___/ ___   _____ _   __ ___   _____
               / /_   / // __ `// // _ \ / __/ / /  / _ \ / ___// __/\__ \ / _ \ / ___/| | / // _ \ / ___/
              / __/  / // /_/ // //  __// /_  / /  /  __/(__  )/ /_ ___/ //  __// /    | |/ //  __// /
             /_/    /_/ \__, //_/ \___/ \__/ /_/   \___//____/ \__//____/ \___//_/     |___/ \___//_/
                       /____/
Motd Updated          : 2015年  9月 20日 日曜日 18:24:24 JST
Hostname              = FigletTestServer
Global IP Address     =
Privte IP Address     =
Uptime                = 18:24:24 up 37 min,  2 users,  load average: 0.00, 0.01, 0.08
Release               = 
Kernel                = 3.10.0-123.el7.x86_64 x86_64 x86_64 GNU/Linux
CPU Usage (Core)      = 0%
Memory  Used/Total    = 126/490MB
Swap    Used/Total    = 1/2099MB
Disk(/) Used/Total    = 1.2G/28G

5分に一度内容を動的生成する様に設定

# /bin/cat << _UPDATEMOTD_ > /etc/cron.d/update-motd
#update-moted
*/5 * * * * root /usr/local/bin/update_motd_for_figlet.sh
_UPDATEMOTD_

以上完了!
次回ログイン時から反映されます。

Screenfetchを使ったホストロゴとステータス表示

CentOS 7.1の場合

  • 完成図
    Screenfetch_CentOS_login.png

screenfetchコマンドの最新版をgithubから取得し、実行権限を付与

# /usr/bin/wget --no-check-certificate -O /usr/local/bin/screenfetch https://raw.githubusercontent.com/KittyKatt/screenFetch/master/screenfetch-dev
# /bin/chmod 755 /usr/local/bin/screenfetch

motd動的生成スクリプトをgistから取得し、実行権限を付与

# /usr/bin/wget --no-check-certificate -P /usr/local/bin/ 'https://gist.github.com/ysaotome/5997652/raw/fecdf757b348debfcdd866df00f6d567ff749623/update_motd_by_screenfetch.sh'
# /bin/chmod 755 /usr/local/bin/update_motd_by_screenfetch.sh

試しに1回実行した上で、実行結果を確認

# /usr/local/bin/update_motd_by_screenfetch.sh
# cat /etc/motd

                   ..                    root@localhost.localdomain
                 .PLTJ.                  OS: CentOS
                <><><><>                 Kernel: x86_64 Linux 3.10.0-123.el7.x86_64
       KKSSV' 4KKK LJ KKKL.'VSSKK        Uptime: 52m
       KKV' 4KKKKK LJ KKKKAL 'VKK        Packages: 603
       V' ' 'VKKKK LJ KKKKV' ' 'V        Shell: update_motd_by_screenfetch.sh
       .4MA.' 'VKK LJ KKV' '.4Mb.        CPU: Intel Xeon CPU E5-2690 v2 @ 2.993GHz
     . KKKKKA.' 'V LJ V' '.4KKKKK .      RAM: 199MiB / 490MiB
   .4D KKKKKKKA.'' LJ ''.4KKKKKKK FA.
  <QDD ++++++++++++  ++++++++++++ GFD>
   'VD KKKKKKKK'.. LJ ..'KKKKKKKK FV
     ' VKKKKK'. .4 LJ K. .'KKKKKV '
        'VK'. .4KK LJ KKA. .'KV'
       A. . .4KKKK LJ KKKKA. . .4
       KKA. 'KKKKK LJ KKKKK' .4KK
       KKSSA. VKKK LJ KKKV .4SSKK
                <><><><>
                 'MKKM'
                   ''

5分に一度内容を動的生成する様に設定

# /bin/cat << _UPDATEMOTD_ > /etc/cron.d/update-motd
#update-moted
*/5 * * * * root /usr/local/bin/update_motd_by_screenfetch.sh
_UPDATEMOTD_

以上完了!
次回ログイン時から反映されます。

余談

もちろん別のディストリビューションでも同様に実現できます。

  • Ubuntu 14.04
    Screenfetch_Ubuntu_login.png
ysaotome
ニッフニッフにしてやんよ。( ・ω・)=つ≡つ
http://sotm.jp
fjct
クラウド・IoT 関連サービスを開発・提供している企業です。(こちらは、富士通クラウドテクノロジーズの有志にて運営しております。)
https://fjct.fujitsu.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした