如何正确设置历史日志?

如何正确设置历史日志?

普通用户.bashrc(debian8)中有两行。

cat /home/debian8/.bashrc

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

第一次使用debian8用户登录并输入tty pwd,不要关闭它。 在此输入图像描述

第二次使用用户 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"

相关内容