Ротация 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.