C'è una dimensione massima nel file della cronologia di bash?


Risposte:


15

Invece di specificare i numeri, puoi farlo

unset HISTSIZE 
unset HISTFILESIZE
shopt -s histappend

nel qual caso è solo la dimensione del disco (e il "limite massimo del file", se il tuo sistema operativo o FS ne ha uno) è il limite.

Tuttavia, tieni presente che questo alla fine rallenterà sempre di più. vedi questo documento di BashFAQ e l' articolo di amministrazione debian (il link originale è morto, guarda in uno specchio: archive.is e archive.org ) per tecniche che si adattano meglio.


Potrebbe anche essere necessario aumentare il history-sizetuo inputrc.
Chris Down,

Avvertenza: come indicato [ unix.stackexchange.com/a/76129/78713×(below) , ciò può causare a Bash di ereditare i valori predefiniti e, se il tuo esistente .bash_historyè più grande di quelli, di troncarlo.
Chris Povirk,

8

È possibile utilizzare logrotate per conservare le voci precedenti. Consente, ad esempio, di impostare limiti di dimensione che attiveranno l'archiviazione. Normalmente viene eseguito da un cronjob quotidiano, ma potresti anche invocarlo dal tuo .bash_logoutscript.


Mi sembra l'approccio più sostenibile, poiché la rimozione dei limiti di dimensione avrà, a lungo termine, un impatto sulle prestazioni. Anche se non sono sicuro che raggiungerò presto la soglia, temo che ci vorrà del tempo per iniziare a notare tali impatti. A proposito, considera di aggiungere la configurazione impostata e il comando di logout bash opzionale da aggiungere.
Balmipour,

Il link non è attivo. Forse modifica per puntare a un altro collegamento con le stesse informazioni previste?
Dr Beco,

7

@Philomath, disinnescare quei variegati dell'ambiente non funziona affatto per me! Per me, questo fa sì che bash usi le sue impostazioni predefinite integrate (sembra) troncare .bash_history a circa 9 KiB.

Ciò che funziona per me è il seguente nel mio .bashrc:

export HISTSIZE=
export HISTFILESIZE=
shopt -s histappend
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.