Linuxマニアックコマンド紹介(acコマンド)

NO IMAGE

みなさまこんにちは。今回から、私の独断と偏見でマニアックと判断したLinuxコマンドをご紹介していきます。
第一弾は「ac」コマンド。
(#このブログではCentOS7をベースに記載します。ディストリビューションの違いにより、パッケージ名やバージョン、パスやコマンドに差異が出る場合があります。)

acコマンドとは


acコマンドは、ユーザのログイン(接続)時間を表示するコマンドです。実例を見た方がわかりやすいと思いますので、早速お見せします。以下。

$ ac 
    total 8628.40

acコマンドを実行した際には、その(コマンドを実行した)ユーザのログイン時間の合計を示す値が表示されます。先の例ですと、合計8628.40時間ログインしたユーザということになります。私のような凡人だと、あまりどのような時に使えば良いかは思いつきませんが、きっと賢い方々にはゴリゴリに使われているコマンドなのでしょう。
なお、ソースを見たわけではありませんが、どうやらacコマンドは、wtmpファイルを参照してコマンド結果を算出・出力するようです。その為、wtmpを消してしまったり、クリアしてしまった場合には、正常な時間が表示されなくなる可能性があります。(wtmpは、システムのログイン時間を記録して保管するファイルです。機会があればご紹介します。)

ちなみに、コマンドの引数としてuser名を指定すると、以下のように、該当ユーザの情報のみ表示されます。

# ac user1
    total 8.61

acコマンドのオプション


さて、続いてはコマンドのオプションについて。備わっているオプションは以下です。(ac: release 6.6.1)

-d/-y/-p/-f/-a/--complain/--reboots/--supplants/--timewarps/--compatibility/--tw-leniency/--tw-suspicious/-z/--debug/-V/-h 

詳しい方はmanを見ていただいた方が早いと思いますが、一応使えそうなオプションの説明を簡単に。

  • -d … 1日ごとのログイン(接続)時間を表示します。 
  • -y …  実行した年のログイン(接続)時間を表示します。
  • -p … 各ユーザの合計ログイン(接続)時間を表示します。
  • -f … -fの後ろにファイルを指定することで、wtmpの代わりに指定したファイルを元にログイン(接続)時間を計算します。
  • -a … ログイン(接続)しなかった日時もスキップせずに表示します。
  • -V … acコマンドのバージョンを表示します。
  • -h … ヘルプを表示します。
  • –debug … 結果と合わせて、詳細情報も表示します。

実行例は以下の通り。

$ ac -d
Jan  1  total  5.03
Today   total  5.02

$ ac -p
    hoku   3.02
    hoku2  2.11
    total  5.13

$ ac -V
ac: GNU Accounting Utilities(release 6.6.1)

$ ac hoku
    total  2.11

英語ですが、こちらに全コマンドオプションの記載があります。よろしければどうぞ。

acコマンドを使うには?必要なパッケージ


psacctは通常、デフォルトでインストールされています。それでも何故かコマンドが見つからない、インストールされていない場合は以下が参考になるかも知れません。


acコマンドが含まれるパッケージ


acコマンドはpsacctというパッケージに含まれています。その為、お手元のLinuxに含まれない場合には、以下の手順でインストールしましょう。(インストールには通常root権限が必要です)

$ yum install psacct

コマンドのインストールパス


コマンドは/usr/binにインストールされます。

/usr/bin/ac

以上、新シリーズでした!近いうちにまた新コマンドをご報告します。