• ベストアンサー

linux RedHatでコンマ1秒を表示させる方法

ログに出力されるタイムスタンプはhhmmssの形式で表示されますが、 コンマ1秒を表示させることはできるのでしょうか? loggerコマンドを使ったシェルを作って、ログにシェルの実行結果を書き込むのですが、 その際のタイムスタンプは1秒未満の時刻を表示したいのです。 dateコマンドでは、1秒未満を表示させる引数の記載はありませんでした。 ●デフォルトのメッセージ出力形式 Dec 17 10:49:44 ●希望するメッセージ出力形式 Dec 17 10:49:44.999             ^^^

質問者が選んだベストアンサー

  • ベストアンサー
  • interplay
  • ベストアンサー率39% (108/273)
回答No.2

RedHatでもどのディストリビューションですか? それによって違いますよ。 ちなみにRedHatEnterpriseLinuxAS3なら以下の様に出ます。 Red Hat Enterprise Linux AS release 3 (Taroon Update 3) Kernel 2.4.21-20.ELsmp on an i686 $ date "+%b %d %R:%S.%N" 12月 24 15:07:28.303932000 でもRedHatEnterpriseLinuxAS2.1では出ません。 Red Hat Linux Advanced Server release 2.1AS/i686 (Pensacola) Linux svr21 2.4.9-e.57smp #1 SMP Thu Dec 2 20:51:12 EST 2004 i686 unknown $ date "+%b %d %R:%S.%N" 12月 24 15:10:26.%N 詳しくは調べていませんがdateの含まれるパッケージ又はコマンドから呼ばれる先のデータを引き渡すパッケージ又はその両方が物によって微妙に違う様です。

yukiasai
質問者

お礼

回答ありがとうございます。返信遅れてしまい申し訳ありません。 頂いた回答から、無事出力できました。 [root@test001 testusr]# cat date.sh date "+%b %d %R:%S.%N" [root@test001 testusr]# sh date.sh 12月 24 13:28:46.514860000 [root@test001 testusr]# この出力形式(コンマ以下の表示)を恒久化するには、 どうすればよいのかご存じでしょうか? /etc以下で”date”をgrepしたら /etc/rc.sysinitというファイルがありましたが・・

その他の回答 (2)

  • proust
  • ベストアンサー率57% (62/108)
回答No.3

質問の趣旨を確認したいのですが、 1秒未満の時刻を何のために出したいのでしょうか。 その目的によって、回答が異なります。 a)ログの種類を問わず、既存のソフトウェアが「syslogd」を介して出力するあらゆるログについて、正確な時刻(いつそのログが発生したのか)を知りたい b)ある自作のシェルが実行された時刻(いつ実行されたのか)を正確に知りたい。 c)ある自作のシェルが実行されるのに要した所要時間(実行にどれだけかかったのか)を厳密に知りたい。 a)の場合ですが、syslogの通信規約(RFC3164)で秒単位までしか送っていないので、残念ながら秒未満は出せません。 b)この用途では、dateコマンドを date "+%b %d %R:%S.%N" >> mylog.txt のように リダイレクトして自前でログを出しましょう。 c) timeコマンドを使います。 man time で調べることができます。 ※しかし、そもそもシェルでコマンドを組んでいる時点で、秒未満の時刻はあまり  あてになりません。秒未満が必要なのは何かの計測とか、CやJavaのプロファイリング などがおおいと思いますが、そのような用途ではc)を使うか、Perlとかを使用して プログラムを組んでほうがよいです。

  • proust
  • ベストアンサー率57% (62/108)
回答No.1

date "+%b %d %R:%S.%N" ではどうですか %Nは日本語のmanには出てきませんがナノ秒をあらわします. Fedora Core 2で確認済み.

yukiasai
質問者

お礼

回答ありがとうございます。返信遅れてしまい申し訳ありません。 頂いた回答から、無事出力できました。 [root@test001 testusr]# cat date.sh date "+%b %d %R:%S.%N" [root@test001 testusr]# sh date.sh 12月 24 13:28:46.514860000 [root@test001 testusr]# この出力形式(コンマ以下の表示)を恒久化するには、 どうすればよいのかご存じでしょうか? /etc以下で”date”をgrepしたら /etc/rc.sysinitというファイルがありましたが・・

関連するQ&A