LoginSignup
27
28

More than 5 years have passed since last update.

/etc/motd でラピュタ機運を盛り上げよう!?

Posted at

はじめに

約 2 年半ぶりの金曜ロードSHOW!での「天空の城ラピュタ」放映までいよいよあと 1 週間を切りました。
せっかくなので周りのサーバのログインメッセージ /etc/motd をラピュタの AA に設定し、
当日を迎える心構えを万全にしておきましょう!

イメージ

/etc/motd とは

サーバに SSH などでログインしたときに表示されるメッセージです。
(motd = message of the day)

例(Ubuntuの場合)
$ ssh hoge
Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.2.0-69-generic x86_64)

 * Documentation:  https://help.ubuntu.com/
New release '12.10' available.
Run 'do-release-upgrade' to upgrade to it.

Last login: Fri Jan  8 00:00:00 2016 from 192.0.2.1
$

RHEL/CentOS系

/etc/motd は実ファイルになっていて、ログイン時に内容がそのまま表示されます。
デフォルトでは空ファイルなので、このファイルを直接編集して AA を表示させましょう。

Debian/Ubuntu系

/etc/motd/var/run/motd へのシンボリックリンクになっており、
ログインするたびに /etc/update-motd.d ディレクトリ内のスクリプトが順に実行され、
その実行結果が表示されるようになっています。

その中の /etc/update-motd.d/99-footer では
/etc/motd.tail が存在する場合、その内容を表示しています。

今回はこの /etc/motd.tail を作成し AA を表示させます。

/etc/motd に AA を設定する

元絵の用意

まず AA の元となる画像を適当に用意します。

元絵
画像の背景を黒など一色で塗りつぶしておくと、生成される AA の見栄えが良くなります。

caca-utils のインストール

元絵の用意ができたら画像を AA に変換するために caca-utils をインストールします。
※ RHEL/CentOS系 ではインストールの前に EPEL リポジトリを有効にしておきます。
(参考 : CentOSにEPELリポジトリを追加する 等)

RHEL/CentOS系
$ sudo yum install caca-utils
Debian/Ubuntu系
$ sudo apt-get install caca-utils

AAの生成

caca-utils がインストールできたら、さっそく先ほど用意した画像 hoge.jpg から AA を生成してみます。
生成には caca-utils に含まれている img2txt を使用します。
-W オプションでターミナルのサイズに合わせて横幅を指定します (単位は文字数)。

RHEL/CentOS系・Debian/Ubuntu系 共通
$ img2txt -W 100 hoge.jpg

img2txt.png

さらに調整したい場合は img2txt のオプションを利用できます。

img2txtのオプション一覧
$ img2txt --help
Usage: img2txt [OPTIONS]... <IMAGE>
Convert IMAGE to any text based available format.
Example : img2txt -w 80 -f ansi ./caca.png

Options:
  -h, --help                    This help
  -v, --version                 Version of the program
  -W, --width=WIDTH             Width of resulting image
  -H, --height=HEIGHT           Height of resulting image
  -x, --font-width=WIDTH                Width of output font
  -y, --font-height=HEIGHT              Height of output font
  -b, --brightness=BRIGHTNESS   Brightness of resulting image
  -c, --contrast=CONTRAST       Contrast of resulting image
  -g, --gamma=GAMMA             Gamma of resulting image
  -d, --dither=DITHER           Dithering algorithm to use :
                        none: no dithering
                        ordered2: 2x2 ordered dithering
                        ordered4: 4x4 ordered dithering
                        ordered8: 8x8 ordered dithering
                        random: random dithering
                        fstein: Floyd-Steinberg dithering
  -f, --format=FORMAT           Format of the resulting image :
                        caca: native libcaca format
                        ansi: ANSI
                        utf8: UTF-8 with ANSI escape codes
                        utf8cr: UTF-8 with ANSI escape codes and MS-DOS \r
                        html: HTML
                        html3: backwards-compatible HTML
                        bbfr: BBCode (French)
                        irc: IRC with mIRC colours
                        ps: PostScript document
                        svg: SVG vector image
                        tga: TGA image
                        troff: troff source

/etc/motd への設定

納得のいく AA 生成パラメータがみつかったら、
そのパラメータを使用して /etc/motd または /etc/motd.tail に書き込みます。

RHEL/CentOS系
$ img2txt -W 120 hoge.jpg | sudo tee -a /etc/motd
Debian/Ubuntu系
$ img2txt -W 120 hoge.jpg | sudo tee -a /etc/motd.tail

確認

それではさっそくログインし直して、うまく設定できたかどうか確認してみましょう。

イメージ

AA が無事表示されたら成功です!

あとがき

今回はバルスシーンを使いましたが、他にも飛行石などもインパクトがありそうです。

飛行石

caca-utils が使用している libcacaffmpegmplayer でも対応しており
動画を AA で再生することもできるので、AA 道(?) を追求するのもまた一興かもしれません。
(とりあえず動くものが見たい場合は cacafirecacademo を実行してみてください。)

それではログインするたびにラピュタを思い出して放映当日に備えましょう!
良い週末を :relaxed:

27
28
1

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
27
28