Ротация bash_history

.bashrc

export HISTCONTROL=ignoredups:erasedups:ignorespace     # исключить дупликаты и строки начинающиеся с пробела
export HISTSIZE=-1                                      # бесконечная история
export HISTFILESIZE=-1                                  # unlimited history
shopt -s histappend                                     # добавлять, а не перезаписывать историю
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"  # Сохранять и перечитывать историю после ввода каждой команды
HISTIGNORE='ll *:l:gs:'                            # игнорировать некоторые команды

Для ротации .bash_history создадим новый конфиг logrotate : /etc/logrotate.d/bashhistory:

/home/YOUR_USERNAME/.bash_history {
    weekly
    missingok
    olddir ~/bash_history_backup
    rotate 5
    size 50k
    nomail
    notifempty
    create 600 YOUR_USERNAME YOUR_USERNAME
}

Лог файл может обрабатываться ежедневно daily, еженедельно weekly (в примере), ежемесячно monthly или когда достигнет размера - size.
missingok - если файл отсутствует, не сообщать о ошибке.
olddir - перемещать файлы в директорию (по умолчанию, файлы создаются в директории основного файла)
nomail - не отправлять на почту
notifempty - не обрабатывать, если файл пуст
create mode owner group
Немедленно после ротации лог файл будет создан, под исходным именем.
Опция mode аналогичнa chmod.

Source

  • blog/bash_history_rotate.txt
  • Последние изменения: 2021/11/10