Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2811

historyコマンドに日時を付与し、全ユーザのhistoryファイルをスクリプトで収集する

$
0
0

概要

linuxで手取り早く操作ログを取得する方法として、ユーザの~/.bash_historyに日時を付与することで対応しました。

設定

historyコマンドを実行すると過去に実行したコマンドの履歴を見ることが出来ますが、日時がないのでいつ実行されたのか分かりません。
そこで、~/.profileに以下の一文を追記します。

HISTTIMEFORMAT='%y/%m/%d %H:%M:%S ';

/etc/profile.d/history.shに記述すると個別アカウントごとに設定出来ますが、今回は全体に適用させたいので~/.profileに記述します。

設定ファイル利用法
~/.profile・ログイン時にそのセッション全体に適用するものを記述するシェルの種類に依存しないものを記述する
~/.bashrcbashでしか使わないものを記述するエイリアス
シェルオプションプロンプト設定~/.bash_profile

こちらの記事を参考にしました。
Linux: .bashrcと.bash_profileの違いを今度こそ理解する

取得スクリプト

ユーザごとのファイル名が~/.bash_historyで同じなので、ユーザごとのフォルダを用意した上で以下のようなスクリプトでコピーしてきます。

#!/bin/sh#user1を作業ユーザとし、コピー前に作業フォルダの前回ファイルを削除するsudo find /home/user1/log/ -name".bash_history"-type f -print | xargs rm-f#user1,user2,user3のファイルをuser1のlogフォルダにコピーするfor a in"user1""usesr2""user3";do

sudo cp-f /home/$a/.bash_history /home/user1/log/$a/;done

結果

このような形のファイルが取得出来ます。


Viewing all articles
Browse latest Browse all 2811

Trending Articles