Como definir o log do histórico corretamente?

0

Existem duas linhas no usuário regular .bashrc (debian8).

cat /home/debian8/.bashrc

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

No primeiro login com o usuário debian8 e para inserir tty pwd , não para fechá-lo.

Nosegundologincomousuáriodebian8eparainserirttyls.

Agora,reinicieocomputadoreobtenhainformaçõesderegistrocomocomandohistory.
Oqueeureceboécomoabaixo:

debian8@hwy:~$history12017-03-0222:48:25/dev/pts/0tty22017-03-0222:48:28/dev/pts/0pwd32017-03-0222:48:38/dev/pts/0tty42017-03-0222:48:40/dev/pts/0ls52017-03-0222:48:38/dev/pts/0tty62017-03-0222:48:40/dev/pts/0ls72017-03-0222:48:25/dev/pts/0tty82017-03-0222:48:28/dev/pts/0pwd92017-03-0222:48:55/dev/pts/0history

Porquenãoépossívelobterasinformaçõesaseguir?Comoobterasinformaçõesderegistroaseguir?

debian8@hwy:~$history12017-03-0222:48:25/dev/pts/0tty22017-03-0222:48:28/dev/pts/0pwd32017-03-0222:48:38/dev/pts/1tty42017-03-0222:48:40/dev/pts/1ls52017-03-0222:48:55/dev/pts/0history

Paramudarde

exportHISTTIMEFORMAT="%F %T   'tty' "
export PROMPT_COMMAND="history -w"

em

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

não '% F% T tty ' .

O que eu recebo é

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

Não há como obter informações como as seguintes?

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
    
por it_is_a_literature 02.03.2017 / 15:56

1 resposta

0

Minha solução é uma solução real configurando a variável de ambiente PROMPT_COMMAND em ~/.bash_profile ou em ~/.bashrc , o que cria um log extra.

O arquivo ~/.bash_history apenas mantém um timestamp e o comando assim:

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

a variável de ambiente HISTTIMEFORMAT é apenas a configuração de como o #1488631380 deve ser traduzido / exibido .

O seguinte criaria o arquivo de log de hoje - ~/bash-history-2017-03-04.log

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

(dependendo de como HISTTIMEFORMAT é configurado)

/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"
    
por 04.03.2017 / 14:08

Tags