LoginSignup
1
0

More than 3 years have passed since last update.

Linuxログイン時にターミナルでの操作ログを自動で取得する

Last updated at Posted at 2020-03-15

久しぶりの投稿です。
最近はgpd-micropcにubuntu mateをインストールして遊んでいます。

経緯

ターミナルでの操作ログを自動で取得する方法がないか、探しいていました。
はじめは.bashrcにscriptコマンド書けばよいだろと思っていましたが、どうもうまくいかないようです。。
色々探した挙げ句、参考になる記事を発見しました。
How do I log all input and output in a terminal session?

環境

gpd micropcにubuntu-mateインストールしたものです

OS: Ubuntu 19.10 eoan                                                                                                   
Kernel: x86_64 Linux 5.3.0-40-generic
Shell: bash
DE: MATE 1.22.2
CPU: Intel Celeron N4100 @ 4x 2.4GHz
GPU: Mesa DRI Intel(R) UHD Graphics 600 (Geminilake 2x6)-

やったこと

1. rsyslog設定ファイル作成

loggerコマンドでログを出力させる形になるので、以下に設定ファイルを作成

vim /etc/rsyslog.d/bash.conf
/etc/rsyslog.d/bash.conf
local6.*    /var/log/commands.log

2. .bashrc 追記

操作ログ取得対象のユーザのホームディレクトリ配下の.bashrc に以下を追記

vim /home/hoge(対象ユーザ)/.bashrc
/home/hoge(対象ユーザ)/.bashrc
whoami="$(whoami)@$(echo $SSH_CONNECTION | awk '{print $1}')"export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$whoami [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'

3. rsyslogサービス再起動

rsyslogサービスを再起動する

systemctl restart rsyslog.service 

4. ログローテート用設定ファイル作成

logrotate.d で日次でローテートするように、設定ファイルを作成する

vim /etc/logrotate.d/commands
/etc/logrotate.d/commands
/var/log/commands.log*
{
»-rotate 7
»-daily
»-dateext
»-missingok
»-notifempty
»-compress
»-postrotate
»-»-/usr/lib/rsyslog/rsyslog-rotate
»-endscript
»-su root root                                                                                                          
}

確認

.bashrc を読み込んで

source .bashrc 

以下のようにファイルが /var/log 配下にできていることを確認

ls -la /var/log/commands.log*
-rw-r----- 1 syslog adm 4753  3月 15 19:34 /var/log/commands.log
/var/log/commands.log
Mar 15 19:34:29 hoge hoge: hoge@export [3457]: 2020-03-15 19:34:29 cd [0]
Mar 15 19:34:39 hoge hoge: hoge@export [3457]: 2020-03-15 19:34:37 source .bashrc  [0]
Mar 15 19:36:56 hoge hoge: hoge@export [3457]: 2020-03-15 19:36:56 ls -la /var/log/commands.log* [0]

所感

logrotateできてるかあやしい。。
後、scriptコマンドみたいに出力もほしい。。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0