Existe um tamanho máximo para o arquivo de histórico do bash?


Respostas:


15

Em vez de especificar números, você pode fazer

unset HISTSIZE 
unset HISTFILESIZE
shopt -s histappend

nesse caso, apenas o tamanho do seu disco (e o seu "maior limite de arquivos", se o seu SO ou FS tiver um) é o limite.

No entanto, esteja ciente de que isso acabará desacelerando o bash mais e mais. veja este documento do BashFAQ e o artigo debian-Administration (link original morreu, olhe no espelho: archive.is e archive.org ) para técnicas que melhoram a escala.


Você também pode ter que aumentar o history-sizeseu inputrc.
Chris Baixo

Aviso: conforme observado [ unix.stackexchange.com/a/76129/78713.la ( abaixo)) , isso pode fazer com que o Bash herde os padrões e, se a sua existente .bash_historyfor maior que esses, truncá-los.
22417 Chris-Povirk

8

Você pode usar o logrotate para preservar entradas antigas. Ele permite, por exemplo, definir limites de tamanho que acionarão o arquivamento. Normalmente, é executado a partir de um cronograma diário, mas você também pode invocá-lo a partir do seu .bash_logoutscript.


Parece a abordagem mais sustentável para mim, pois a remoção de limites de tamanho, a longo prazo, terá impactos no desempenho. Embora não esteja certo, chegarei ao limite em breve, receio que demore algum tempo para começar a perceber esses impactos. Entre, considere adicionar a configuração que você definiu e o comando basn logout opcional a adicionar.
Balmipour 27/02

O link está inoperante. Talvez edite para apontar para outro link com as mesmas informações pretendidas?
Dr Beco

7

@ Philomath, desarmar esses ambientes não funciona para mim! Para mim, isso faz com que o bash use seus padrões embutidos (ao que parece) de truncando .bash_history para cerca de 9KiB.

O que funciona para mim é o seguinte no meu .bashrc:

export HISTSIZE=
export HISTFILESIZE=
shopt -s histappend
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.