wtmpを繰り返していくつかのデータを抽出するには?

wtmpを繰り返していくつかのデータを抽出するには?

以下を使用して、wtmp(最後のコマンド)をログファイルに保存します。

last -F | grep -i -e pv -e nv -e pp > last.log

結果:

ここに画像の説明を入力してください。

bashスクリプトを使用して、ユーザー名(最初のブロック)とログイン時間(2番目のブロック)を抽出したいと思います。私が経験している問題は、ログの結果を読み取る方法がわからないことです。ログの特定の部分を検索する方法。私の考えでは、これは行と列です。データの抽出に使用できますか?

挨拶

答え1

sudoerユーザーの実際の名前を取得したいので、これを使用しています。

/etc/bashrcに追加:

export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'

そして、rsyslog.confで(ロガーlocal6を追加して/var/log/commads.logを入力します(boot.logの下に追加)。

sed -ie '/log\/boot.log/a local6.* /var/log/commands.log' /etc/rsyslog.conf    
systemctl restart rsyslog

/var/log/commandは履歴に似ているため、awkを使用して処理して必要なフィールドのみを取得できます。

関連情報