それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ssh ログイン・メッセージをランダムに表示する motdのカスタマイズ

SSH でサーバーログインしたときのメッセージ

f:id:takuya_1st:20140523020242j:plain

サーバーログインしたときに表示されるメッセージを自由に変えて遊びたい。

motd といいます

サーバーログインしたときに表示されるメッセージは、message of the day . 略してmtod といいます。

メッセージを変えるには

/etc/motd

このファイルを編集します。debian wheezy から、motd は固定化されました。以前のように再起動したら元に戻ると言うことは無くなりました。

毎回変えるには

ログイン時のメッセージは固定だとおもしろくない。

/etc/motd -> /var/run/motd

毎回変えるには、 /var/run/motd を使います。

編集箇所

  • /etc/motd
  • /var/run/motd
  • /etc/update-motd.d

作りかた

rm /etc/motd # debian の固定を削除
ln -s /var/run/motd /etc/motd
mkdir  /etc/update-motd.d

ここまでで準備完了。

毎回変化するメッセージを用意する

/update-motd.d/ いかに、シェルスクリプトを用意する

cat  > /etc/update-motd.d/01-date

#!/bin/sh
date +"%Y-%m-%d#%H:%M:%S
EOF
sudo chmod +x /etc/update-motd.d/01-date

これで、日付が表示される。

複数登録したら、全部表示される。

/etc/update-motd.d/01-date
/etc/update-motd.d/02-random
/etc/update-motd.d/03-message

複数登録したら、複数がそれぞれ名前順に実行される。それぞれシェルスクリプトを記述するることがd家着る

ランダムで表示する

/etc/update-motd.d/03-message

たとえば、メッセージを自由に変えてみる。

#!/usr/bin/env ruby
# coding: utf-8

list = ["進捗どうですか","進捗ダメですか?", "しんちょくどうですか", "進捗ダメです"]

message = list[rand(list.size)] + "\n"
repeat = rand(10)+1

print "\n"*2
print message * repeat
print "\n"*2

これで冒頭のような、ランダムな表示が完成する。

アスキーアートを表示したり、ニュースヘッドライン、最近のサーバー変更点などを表示すれば使えそうだよね。

スピリチュアル・プログラミング

SSHでログインしたら、サーバーにお祈りを送信してもらう。

#!/usr/bin/env ruby
# coding: utf-8

list = ["上手く動きますように",'いつもありがとう']

message = list[rand(list.size)] + "\n"
repeat = rand(10)+1

print "\n"*2
print message * repeat
print "\n"*2

などと出来る。

参考資料

https://wiki.debian.org/motd