motdってありますよね、Linuxにログインした時に表示されるバナーです。
ログインした時にシステムの状態をさっと見たかったので、↓のように表示されるようにしました。
Last login: Fri Feb 10 21:22:34 2017 from 210.152.241.14
+ +
Motd Updated : 2017年 2月 11日 土曜日 13:30:05 JST
Hostname = kotori
Privte IP Address = 219.94.249.137
Uptime = 13:31:55 up 189 days, 1:40, 1 user, load average: 0.08, 0.10, 0.04
Release = CentOS release 6.8 (Final)
Kernel = 2.6.32-642.4.2.el6.i686 i686 i386 GNU/Linux
CPU Usage (Core) = 1%
Memory Used/Total = 979/1006MB
Swap Used/Total = 720/2015MB
Disk(/) Used/Avail = 27G/21G
設定方法
/etc/motd 書き換えスクリプトの準備
まずは、/etc/motdを書き換えるスクリプトを用意します。
% vim /root/bin/update_motd.sh
---
#!/bin/bash
# Description:UpdateMotd for Figlet
FILE_MOTD='/etc/motd'
BIN_DATE='/bin/date'
BIN_FIGLET='/usr/bin/figlet'
BIN_HOSTNAME='/bin/hostname'
BIN_IFCONFIG='/sbin/ifconfig'
BIN_GREP='/bin/grep'
BIN_SED='/bin/sed'
BIN_UPTIME='/usr/bin/uptime'
BIN_CAT='/bin/cat'
BIN_UNAME='/bin/uname'
BIN_FREE='/usr/bin/free'
BIN_HEAD='/usr/bin/head'
BIN_TAIL='/usr/bin/tail'
BIN_DF='/bin/df'
BIN_AWK='/bin/awk'
BIN_BC='/usr/bin/bc'
BIN_PS='/bin/ps'
BIN_CURL='/usr/bin/curl'
BIN_CUT='/bin/cut'
COLOR_LIGHT_GREEN='\033[1;32m'
COLOR_LIGHT_BLUE='\033[1;34m'
COLOR_YELLOW='\033[1;33m'
COLOR_RED='\033[0;31m'
COLOR_WHITE='\033[1;37m'
COLOR_DEFAULT='\033[0m'
echo -e "
${COLOR_LIGHT_GREEN}+ +
${COLOR_WHITE}Motd Updated : ${COLOR_LIGHT_BLUE}$(${BIN_DATE})
${COLOR_WHITE}Hostname = ${COLOR_LIGHT_BLUE}$(${BIN_HOSTNAME})
${COLOR_WHITE}Privte IP Address = ${COLOR_LIGHT_BLUE}$(${BIN_IFCONFIG} eth0 2>/dev/null | ${BIN_GREP} 'inet ' | ${BIN_AWK} {'print $2'} | ${BIN_CUT} -d ':' -f2)
${COLOR_WHITE}Uptime = ${COLOR_LIGHT_BLUE}$(${BIN_UPTIME} | ${BIN_SED} -e 's/^ //')
${COLOR_WHITE}Release = ${COLOR_LIGHT_BLUE}$(${BIN_CAT} /etc/redhat-release )
${COLOR_WHITE}Kernel = ${COLOR_LIGHT_BLUE}$(${BIN_UNAME} -orpi)
${COLOR_WHITE}CPU Usage (Core) = ${COLOR_LIGHT_BLUE}$(echo $(${BIN_PS} -eo pcpu | ${BIN_AWK} 'NR>1' | ${BIN_AWK} '{tot=tot+$1} END {print tot}') / $(${BIN_CAT} /proc/cpuinfo | ${BIN_GREP} -c processor) | ${BIN_BC} )%
${COLOR_WHITE}Memory Used/Total = ${COLOR_LIGHT_BLUE}$(${BIN_FREE} -m | ${BIN_HEAD} -n 2 | ${BIN_TAIL} -n 1 | ${BIN_AWK} {'print $3'})/$(${BIN_FREE} -m | ${BIN_HEAD} -n 2 | ${BIN_TAIL} -n 1 | ${BIN_AWK} {'print $2'})MB
${COLOR_WHITE}Swap Used/Total = ${COLOR_LIGHT_BLUE}$(${BIN_FREE} -m | tail -n 1 | ${BIN_AWK} {'print $3'})/$(${BIN_FREE} -m | ${BIN_TAIL} -n 1 | ${BIN_AWK} {'print $2'})MB
${COLOR_WHITE}Disk(/) Used/Avail = ${COLOR_LIGHT_BLUE}$(${BIN_DF} -h / | tail -n 1 | ${BIN_AWK} {'print $3'})/$(${BIN_DF} -h / | ${BIN_TAIL} -n 1 | ${BIN_AWK} {'print $2'})
${COLOR_DEFAULT}
" > ${FILE_MOTD}
---
% chmod 755 /root/bin/update_motd.sh
Cron 登録
スクリプトの準備ができたら、Cron を登録しましょう。
% crontab -e
---
*/5 * * * * /root/bin/update_motd.sh
---
はい、これでOK!スクリプトを手動実行すると5分待たずに/etc/motdが更新されます。
次回ログイン時にばっちり表示されますよ。
motd って「message of the day」なんですね。知らなかった(´・ω・`)