¿Hay un tamaño máximo para el archivo de historial de bash?

Respuestas:

15

En lugar de especificar números, puedes hacer

unset HISTSIZE 
unset HISTFILESIZE
shopt -s histappend

en cuyo caso solo el tamaño de su disco (y su "límite de archivo más grande", si su sistema operativo o FS tiene uno) es el límite.

Sin embargo, tenga en cuenta que esto eventualmente ralentizará la fiesta cada vez más. vea este documento de BashFAQ y el artículo de administración de Debian (el enlace original murió, mire en un espejo: archive.is y archive.org ) para conocer las técnicas que se escalan mejor.

Philomath
fuente
También es posible que tenga que aumentar history-sizeen su inputrc.
Chris Down
Advertencia: Como se señaló [ unix.stackexchange.com/a/76129/78713font>(abajo) , esto puede hacer que Bash herede los valores predeterminados y, si su existente .bash_historyes mayor que esos, truncarlo.
Chris Povirk
8

Puede usar logrotate para conservar las entradas antiguas. Le permite, por ejemplo, establecer límites de tamaño que activarán el archivado. Normalmente se ejecuta desde un cronjob diario, pero bien podría invocarlo desde su .bash_logoutscript.

rozcietrzewiacz
fuente
Me parece el enfoque más sostenible, ya que eliminar los límites de tamaño tendrá, a la larga, un impacto en el rendimiento. Si bien no estoy seguro, llegaré pronto al umbral, me temo que tomará algún tiempo comenzar a notar tales impactos. Por cierto, considere agregar la configuración que configuró y el comando opcional de cierre de sesión bash para agregar.
Balmipour
El enlace está caído. ¿Quizás editar para apuntar a otro enlace con la misma información deseada?
Dr Beco
7

¡@Philomath, desarmar esos vars de entorno no funciona para mí en absoluto! Para mí, esto hace que bash use sus valores predeterminados incorporados (parece) de truncar .bash_history a aproximadamente 9 KB.

Lo que sí funciona para mí es lo siguiente en mi .bashrc:

export HISTSIZE=
export HISTFILESIZE=
shopt -s histappend
zenaan
fuente