Linuxで時刻表示をする際に真っ先に思いつくのは[date]コマンドだと思いますが、これではリアルタイムではなく、コマンドを叩いた瞬間の時刻が表示されてしまいます。
そこで、[watch]コマンドを使って時刻表示をリアルタイムにしたいと思います!
一定間隔で実行を繰り返すwatchコマンド
[watch]コマンドを初めて知った方のために、少しだけ概要を説明します。
「watch」は、引数として指定したコマンドを一定間隔ごとに繰り返し実行するコマンドです。実行結果をフルスクリーンで表示し、[CTRL]+[C]で終了します。
引用:【 watch 】コマンド――コマンドを一定間隔で繰り返し実行する:Linux基本コマンドTips(220) – @IT
つまり、[watch]の後ろに一定間隔で繰り返し実行したいコマンド(今回の場合は[date])、つまり、リアルタイムで表示したいコマンドを引数にして実行するものです。
watchコマンドの基本的な使い方
上記でも書いた通り、[watch]コマンドの使い方は簡単です。
watch <オプション> [コマンド]
任意のオプションについては、以下の参考サイトをご覧ください。
https://atmarkit.itmedia.co.jp/ait/articles/1806/29/news037.html
リアルタイムで時刻表示
それでは、リアルタイムで時刻表示をしてみましょう!
冒頭でも記述した通り、まずは[watch + date]コマンドを使ってみます。
dateコマンドで時刻表示
普通に[date]コマンドを入力すると、このように時刻が表示されます。
# date 2022年 9月 5日 月曜日 12:13:18 JST
さらに、[watch]コマンドを追加すると、こんな感じ。
# watch date Every 2.0s: date 2022年 9月 5日 月曜日 12:22:24 JST
リアルタイムに時刻表示さているのがわかります。
しかし、よく見ると[Every 2.0s: date]と表示され、デフォルトでは2秒間隔になっていたので、[-n (秒数)]を指定して1秒間隔で時刻表示します。(2秒だと何となく気持ち悪いのでw)
# watch -n 1 date Every 1.0s: date 2022年 9月 5日 月曜日 12:22:24 JST
【おまけ】timedatectlで時刻表示
おまけで、時刻やタイムゾーンを表示する[timedatectl]コマンドを使って、リアルタイムで時刻表示をしてみます。
# watch -n 1 timedatectl Every 1.0s: timedatectl webap-server: Mon Sep 5 12:25:57 2022 Local time: 月 2022-09-05 12:25:57 JST Universal time: 月 2022-09-05 03:25:57 UTC RTC time: 月 2022-09-05 03:25:57 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes NTP service: active RTC in local TZ: no
以上です。
- Original:https://minory.org/linux-realtime.html
- Source:Minory
- Author:管理者