履歴ログを正しく設定するには?

履歴ログを正しく設定するには?

通常のuser.bashrc(debian8)には2行があります。

cat /home/debian8/.bashrc

export HISTTIMEFORMAT="%F %T   `tty` "
export PROMPT_COMMAND="history -w"

初めてdebian8ユーザーとしてログインし、を入力してくださいtty pwd。閉じないでください。 ここに画像の説明を入力してください。

2番目にユーザーdebian8としてログインし、と入力しますtty lsここに画像の説明を入力してください。

次に、コンピュータを再起動し、履歴コマンドを使用してログ情報を取得します。
私が得るものは次のとおりです。

debian8@hwy:~$ history
    1  2017-03-02 22:48:25   /dev/pts/0 tty
    2  2017-03-02 22:48:28   /dev/pts/0 pwd
    3  2017-03-02 22:48:38   /dev/pts/0 tty
    4  2017-03-02 22:48:40   /dev/pts/0 ls
    5  2017-03-02 22:48:38   /dev/pts/0 tty
    6  2017-03-02 22:48:40   /dev/pts/0 ls
    7  2017-03-02 22:48:25   /dev/pts/0 tty
    8  2017-03-02 22:48:28   /dev/pts/0 pwd
    9  2017-03-02 22:48:55   /dev/pts/0 history

なぜ次の情報が得られないのですか?次のログ情報を取得するには?

debian8@hwy:~$ history
    1  2017-03-02 22:48:25   /dev/pts/0 tty
    2  2017-03-02 22:48:28   /dev/pts/0 pwd
    3  2017-03-02 22:48:38   /dev/pts/1 tty
    4  2017-03-02 22:48:40   /dev/pts/1 ls
    5  2017-03-02 22:48:55   /dev/pts/0 history

次から変更

export HISTTIMEFORMAT="%F %T   `tty` "
export PROMPT_COMMAND="history -w"

入力する

export HISTTIMEFORMAT="%F %T   `tty` "
export PROMPT_COMMAND="history -a"

いいえ「%F%T tty

私が得るものは

debian8@hwy:~$ history
    1  2017-03-02 22:48:25   /dev/pts/0 tty
    2  2017-03-02 22:48:28   /dev/pts/0 pwd
    3  2017-03-02 22:48:38   /dev/pts/0 tty
    4  2017-03-02 22:48:40   /dev/pts/0 ls
    5  2017-03-02 22:48:55   /dev/pts/0 history

次の情報を取得する方法はありますか?

debian8@hwy:~$ history
    1  2017-03-02 22:48:25   /dev/pts/0 tty
    2  2017-03-02 22:48:28   /dev/pts/0 pwd
    3  2017-03-02 22:48:38   /dev/pts/1 tty
    4  2017-03-02 22:48:40   /dev/pts/1 ls
    5  2017-03-02 22:48:55   /dev/pts/0 history

答え1

私の解決策は実用的です解決策PROMPT_COMMAND環境変数を設定するか、追加の~/.bash_profileログ~/.bashrcを生成します。

ファイルは、~/.bash_history次のようにタイムスタンプとコマンドのみを保持します。

#1488631365
ls -lah
#1488631367
history
#1488631380
cat ~/.bash_history

環境変数は正しい方法HISTTIMEFORMATで設定されます。#1488631380翻訳/表示


以下は、今日のログファイルを生成します -~/bash-history-2017-03-04.log

export PROMPT_COMMAND='echo -e "$(tty)\t$(history 1)" >> ~/bash-history-$(date "+%Y-%m-%d").log' 

HISTTIMEFORMAT出力例(設定方法によって異なります)

/dev/pts/1        541  [04/03 14:02:37] tty
/dev/pts/1        542  [04/03 14:02:45] echo "hi from tty1"
/dev/pts/0        523  [04/03 13:55:07] cat ~/.bash_history
/dev/pts/0        524  [04/03 14:02:53] tty
/dev/pts/0        525  [04/03 14:02:58] echo "hi from tty 0"

関連情報