I just noticed that a lot of entries are missing from my bash command history (the .bash_history file).

I'd like to know:

  • if there is a way to find out why commands are missing from the file (like a lack of disk space; I could not find hints in /var/log/syslog)
  • if there are ways, issues or ongoing work to make sure that the bash history always reliably includes all executed bash commands - for example by copying a backup of the latest .bash_history file before overwriting it, doing so after every executed command and having a filesize-buffer in case disk space gets too low

The .bashrc file already has HISTSIZE and HISTFILESIZE set to very large values. I have backups of the .bash_history file.

  • 1
    What says shopt histappend? If is not set the last shell to close overwrites whatever other shells have added.
    – xenoid
    Apr 25 '20 at 11:04
  • It says histappend on. If that isn't the default setting that would be yet another problem.
    – mYnDstrEAm
    Apr 25 '20 at 11:39
  • If you diff the backups, do they only differ at the end or also at the beginning and/or middle of the files? Also what are te outputs of sudo grep -r '^HIST' /etc/* and grep '^HIST' ~/\.*?
    – bey0nd
    Apr 26 '20 at 8:12
  • It sadly looks like there's no overlap: the earliest commands of the current .bash_history file aren't in any of my backup files. I made the last backup of it a not-too-long while before the first command of the current one. It's mostly commands a short while after upgrading to Debian 10 that are missing now. Outputs: /etc/skel/.bashrc:HISTCONTROL=ignoreboth /etc/skel/.bashrc:HISTSIZE=1000 /etc/skel/.bashrc:HISTFILESIZE=2000 /etc/sysstat/sysstat:HISTORY=7 & /home/username/.bashrc:HISTCONTROL=ignoreboth /home/username/.bashrc:HISTSIZE=100000 /home/username/.bashrc:HISTFILESIZE=200000
    – mYnDstrEAm
    Apr 26 '20 at 9:10

The command history of your current shell is written to .bash_history when you close the shell. Therefore, while usually all recent commands are accessible from the shell, they are not yet added to the .bash_history file.

  • Thank you. That's another problem. Hundreds of older commands are missing.
    – mYnDstrEAm
    Apr 25 '20 at 9:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.