Histórico com arquivo bash

1

Estou executando um arquivo bash para obter dados sobre quais processos do sistema estão em execução (por exemplo, netstat, syslog, arp etc). Tudo está indo bem, exceto pela história. Estou tentando salvar o histórico em um arquivo de texto com

cp ~/. bash_history $path/filename.txt   

Infelizmente, isso não me dá o histórico completo. Se inserir manualmente o comando

history > /media/root/usb/filename 

Eu obtenho um resultado completamente diferente. Meu objetivo é automatizar todo o processo sob o arquivo bash, existe uma maneira de fazer isso. Também gostaria idealmente da data e hora com a história.

    
por JOrchard 09.08.2017 / 14:47

2 respostas

3

Como @Jesse_b comentou, .bash_history contém o histórico de todas as sessões de shell anteriores, exceto a atual, que pode ser examinada pelo comando history . Então você terá primeiro para limpar o histórico atual via

history -a

e depois você pode copiá-lo para outro arquivo:

cp ~/.bash_history $path/filename.txt   

Para preceder cada entrada do histórico com um registro de data e hora, defina a variável $ HISTTIMEFORMAT, por exemplo,

HISTTIMEFORMAT="%F %T: "
    
por 09.08.2017 / 15:17
1

Para obter a data e a hora do seu histórico, execute os seguintes comandos:

HISTTIMEFORMAT="%d/%m/%y %T "
echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc
source ~/.bashrc
history

Como ver os timestamps no histórico do bash

Por que isso não me dá o histórico completo?

Veja a resposta de @ michael-homer

If you want to make sure that they're always written immediately, you can put that command into your PROMPT_COMMAND variable:

export PROMPT_COMMAND='history -a'
    
por 09.08.2017 / 15:18