システム管理
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

コマンド履歴に時刻を含める方法

インディアナ
時折のコントリビューター

コマンド履歴に時刻を含める方法

あるユーザーがログイン中に投入したコマンドの履歴をヒストリー機能を用いて残そうと考えています。

従来のヒストリー機能では、投入したコマンドしか残らないと理解していますが、そのコマンドを投入した時刻も同時に残す方法があるのでしょうか?
3 件の返信
nadachi
レギュラーアドバイザー

コマンド履歴に時刻を含める方法

> 従来のヒストリー機能では、投入したコマンドしか残らないと...

これはshellのコマンドヒストリ機能のことと理解しますが、これはもともと、前に打った同じようなコマンドを繰り返すとき、前に打ったコマンドラインをそのまま、またはちょっとだけ変更して使う、という用途ですので、確かに時刻情報は入りません。

 コマンドを実行した時刻情報まで必要であれば、仕組みは大げさになりますが、process accounting 機能を enableにすれば、process accounting recordにコマンドや時刻情報が残ります。ただしこれはシステム全体でON/OFFする機能ですので、ある特定のユーザーのみ記録を残す、というのには向いていませんが。

参考まで。
インディアナ
時折のコントリビューター

コマンド履歴に時刻を含める方法

早速の返信ありがとうございます。

私の質問に 少し補足をしますと、やりたいことは、

「誰が(どのログインユーザーが)」,

「いつ(年月日)」,

「どんなコマンドを投入したか」

管理者として、一定期間 履歴を残しておきたい。

....ということです。

process accounting 機能 とは、聞いたことくらいはあるのですが、何を参照すれば良いのか ご教示いただければ 助かります。
nadachi
レギュラーアドバイザー

コマンド履歴に時刻を含める方法

process accounting 機能のon/offは/usr/sbin/acct/turnacct で行うのですが、

 システムブート時に行うなら

/etc/rc.config.d/acct で START_ACCT=1 にしておけば、ブート時にonになります。

 コマンドラインから行うには /sbin/init.d/acctを

流用して、

/sbin/init.d/acct start



/sbin/init.d/acct stop

で行う手もあります。

 process accounting をonにすると、

/var/adm/pacctにレコードが記録されていきます。これらをformatするには/usr/sbin/acct/acctprc などのコマンドを使います。

 "man 1m acct" から、他にどんなコマンドが使えるかをたどってはいかが。

( ただし、process accounting の pacct ファイルは気をつけないとすぐに大きくなります。

また、process accounting recordが記録されるのは、process が exitした時点であって、システム起動時からずっと動き続けるようなプロセスの記録は載りません。このようなプロセスのシステムへの影響を見るには、HP-UX では OpenView のPerfView を使うことになるでしょう。)

参考まで。