55
57

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-09-20

はじめに

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
55
57
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
55
57

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?