historyコマンドに日時を付与し、全ユーザのhistoryファイルをスクリプトで収集する
概要
linuxで手取り早く操作ログを取得する方法として、ユーザの~/.bash_history
に日時を付与することで対応しました。
設定
historyコマンドを実行すると過去に実行したコマンドの履歴を見ることが出来ますが、日時がないのでいつ実行されたのか分かりません。
そこで、~/.profile
に以下の一文を追記します。
HISTTIMEFORMAT='%y/%m/%d %H:%M:%S ';
~/.profile
に記述すると個別アカウントごとに設定出来ますが、今回は全体に適用させたいので/etc/profile.d/history.sh
に記述します。
設定ファイル | 利用法 | 例 |
---|---|---|
~/.profile | ・ログイン時にそのセッション全体に適用するものを記述する | シェルの種類に依存しないものを記述する |
~/.bashrc | bashでしか使わないものを記述する | エイリアス |
シェルオプション | プロンプト設定 | ~/.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
結果
Author And Source
この問題について(historyコマンドに日時を付与し、全ユーザのhistoryファイルをスクリプトで収集する), 我々は、より多くの情報をここで見つけました https://qiita.com/ryosuk/items/94c3305699ee0d036219著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .