Настройка Bash
История команд
/etc/bash/bashrc
... ### Настройка истории # Не запоминать дублирующиеся команды HISTCONTROL=ignoreboth # Количество строк в памяти HISTSIZE=1024 # Количество строк в файле .bash_history HISTFILESIZE=10240 # Формат времени (вкл. запись timestamp) HISTTIMEFORMAT='%d.%H.%y %H:%M:%S ' ### Полезные команды (alias'ы) alias ll='ls -lah' # подсказка alias ff='echo find ./ -type f -exec grep -i -H \"STRING\" {} \\\;'
Просмотр истории команд командой
history
bashlogger
Помимо .bash_history можно вести лог команд пользователей в syslog
Установка bash
Bash должен быть собран с флагом bashlogger, тогда он будет писать лог в /dev/log
echo "app-shells/bash bashlogger" >> /etc/portage/package.use
Пересобираем (при необходимости)
emerge bash -1av
Настройка syslog-ng
Настроим правила для bash в отдельный файл /var/log/bash.log
/etc/syslog-ng/syslog-ng.conf
... filter f_debug { ... and not filter(f_bash); }; filter f_syslog { ... and not filter(f_bash); }; filter f_messages {... and not filter(f_bash); }; ## правила bash destination bash { file("/var/log/bash.log" owner(root) group(root) perm(0600)); }; filter f_bash { program(bash); }; log { source(src); filter(f_bash); destination(bash); };
Изменяем фильтр f_syslog, f_messages, f_debug что бы не дублировать логи bash
Ротация логов
Добавить
/etc/logrotate.d/syslog-ng.custom
... ##### BASH ##### /var/log/bash.log { size 10M sharedscripts missingok postrotate /etc/init.d/syslog-ng reload > /dev/null 2>&1 || true endscript }
Обсуждение