エビデンスに役立つ!プロンプトへの時刻表示
Linux
よくコンソールなどのコマンドで作業をする時にエビデンスをとる事があると思います。
もし、その作業中に問題が発生したら・・・本番環境の作業の場合、考えるだけで冷や汗もんです。
が、作業ログを取っておく事で、何か問題が発生した場合ログを見て対応する事が可能です。
逆に、問題発生が自分の作業要員ではない場合、ログに時間が表示されていれば問題発生時のログを提示して自分の作業棋院ではない事を証明する事ができるかもしれません。
という事で作業途中に「date」と入力すれば時刻が表示されますが、プロンプトに表示させる事である程度の作業時刻が分かるようになります。
プロンプトに表示させることができる主な値は以下の通りです。
値 | 説明 |
---|---|
\u | ユーザー名 |
\h | ホスト名 |
\t | 時刻 |
\W | カレントディレクトリ(今いるディレクトリ名) |
では設定してみましょう。Linuxでプロンプトを設定する際の環境変数は「PS1」です。
ここでは作業時だけプロンプトが変わればよいので作業しているコンソールだけ変わればよいのでシステム内のファイルを変更したりはしません。
[root@caramelsauce ~]#
ごめんなさい。プロンプトをコマンド内に記載した為に
「#」以降が青くなってしまっていますが、気にしないでください。
[root@caramelsauce ~]# PS1="[\u@\h \t \W]# "
[root@caramelsauce 01:23:45 ~]#
[root@caramelsauce 01:23:46 ~]#
4行目のように
PS1="[\u@\h \t \W]# "
と入力すれば、以後「Enter」を押したタイミングの時刻が次の行に表示されるようになります。
(私は「#」と「"」の間に半角スペースを入力します。入力したコマンドが見づらくなるので)
HP-UX
HP-UXもプロンプトを表す環境変数は「PS1」になります。
がLinuxとは違い基本的にはbashなどが入っていない(デフォルトはshだったかな??)と思うので、上記のLinuxと同じようには設定できません。
また、bashの様に「\t」で時刻表示というような設定値がほぼない(という認識)なのでいろんな工夫を行い以下のコマンドで表示させることができます。
root@caramelsauce#
root@caramelsauce# trap 'PS1="[$LOGNAME@`uname -n` `date '+%H:%M:%S'`]# " ' DEBUG
[root@caramelsauce 12:34:56]#
[root@caramelsauce 12:34:56]#
[root@caramelsauce 12:34:56]# date
2021年01月23日 12時40分05秒
[root@caramelsauce 12:40:05]#
上記ではLANGを日本語にしてあります。
trapコマンドや最後のDEBUGの詳細はよくわかってないです。とりあえず上記のコマンドを入力すればプロンプトに時刻を表示させることができます。
が、bashと違うのは「Enter」を押しただけでは時刻が更新されないという事です。
何かコマンドを入力(lsでもpwdでも何でもよいので入力)してから「Enter」を押さないとプロンプトの時刻が更新されないことに注意して下さい。