system management
1752728 メンバー
5629 オンライン
108789 解決策
新規ポスト

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

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

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

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

従来のヒストリー機能では、投入したコマンドしか残らないと理解していますが、そのコマンドを投入した時刻も同時に残す方法があるのでしょうか?
3件の返信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 を使うことになるでしょう。)

参考まで。