平成も残すところあと数日となり、大型連休に旅行や帰省する方も多いかと思いますが、一方で「特に予定なんて無いよ」という方もチラホラ見かけます。
そういった方も、せっかくの連休なので、せめて平成から令和に替わる改元の瞬間を目の当たりにしては如何でしょうか−−date コマンドで。
必要なもの
以下の Linux 環境のいずれか
- Red Hat Enterprise Linux 5/6/7 (以下 RHEL)
- CentOS 5/6/7
- Ubuntu 19.04
下準備
RHEL/CentOS の場合
令和対応が含まれる最新の glibc パッケージに更新しておく必要があります。普通に yum update
しておいて下さい。
- RHEL 5/ CentOS 5:glibc-2.5-123.el5_11.5 以降
- RHEL 6/ CentOS 6:glibc-2.12-1.212.el6_10.2 以降
- RHEL 7/ CentOS 7:glibc-2.17-260.el7 以降
Ubuntu 19.04 の場合
令和対応が含まれる最新の libc6 パッケージがインストールされている筈です。以下の要領でバージョンを確認して下さい。2.29-0ubuntu2 は対応済みです。
$ sudo dpkg -l libc6
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前 バージョン アーキテクチ 説明
+++-==============-=============-============-=================================
ii libc6:amd64 2.29-0ubuntu2 amd64 GNU C Library: Shared libraries
RHEL/CentOS/Ubuntu 19.04 共通
インストール時の設定次第では日本語ロケール(ja_JP.UTF-8)が用意されていない可能性がありますので、以下で確認します。
$ sudo locale -a
C
C.UTF-8
POSIX
en_US.utf8
$
日本語ロケールが無ければ作りましょう。
$ sudo locale-gen ja_JP.UTF-8
$
glibc の準備が整ったら、動作を確認します。
$ export LC_ALL=ja_JP.UTF-8
$ date +%Ec
平成31年04月27日 16時17分40秒
$
令和対応しているかどうか確認します。
$ date +%Ec -d 20190501
令和対応していれば以下のように表示されます。
$ date +%Ec -d 20190501
令和元年05月01日 00時00分00秒
$
未対応なら以下のように表示されます。
$ date +%Ec -d 20190501
平成31年05月01日 00時00分00秒
$
改元の瞬間を見る
2019/4/30 23:59 になったら、以下のコマンドを実行します。
$ while sleep 1; do date +%Ec; done
1秒毎に1行、date コマンドの出力が表示されるはずです。
$ while sleep 1; do date +%Ec; done
平成31年04月30日 23時59分00秒
平成31年04月30日 23時59分01秒
平成31年04月30日 23時59分02秒
後はただ、日付が変わるのを待ちます。
OS が古い場合
何らかの事情で上記の OS 環境が用意できず、古い Linux 環境しかない場合、以下のようにインスタントな Ubuntu 19.04 環境を用いる方法もあります。
私は Ubuntu 18.04.2 上で動作確認しました。
- Ubuntu Cloud Imageから Ubuntu 19.04 の root イメージをダウンロードします。
-
ディレクトリを1つ作り、その中で上記アーカイブを解凍します。
$ mkdir /tmp/s $ sudo tar -C /tmp/s -xf disco-server-cloudimg-amd64-root.tar.xz $
-
chroot で Ubuntu 19.04 環境に移行します。
$ sudo chroot /tmp/s #
-
日本語ロケールを生成します。
# locale-gen ja_JP.UTF-8 Generating locales (this might take a while)... ja_JP.UTF-8... done Generation complete. #
-
環境変数に日本語ロケールを、タイムゾーンに東京を設定します。warning は無視して構いません。
# export LC_ALL=ja_JP.UTF-8 TZ=Asia/Tokyo bash: warning: setlocale: LC_ALL: cannot change locale (ja_JP.UTF-8) #
-
date コマンドの動作確認を行います。
# date +%Ec 平成31年04月27日 07時35分02秒 # date +%Ec -d 20190501 令和元年05月01日 00時00分00秒 #