Баш 4.1 может записывать историю в системный журнал. Однако я не могу заставить его работать под FreeBSD 8.
Я пробовал перекомпилировать bash из портов с помощью -DWITH_SYSLOG=
но безрезультатно. Кому-нибудь удалось заставить работать логи под FreeBSD? А как насчет Linux?
Лучше всего было бы включить аудит, который позволит вам записывать каждую выполняемую команду независимо от того, какую оболочку они используют.
попробуй это:
export HISTTIMEFORMAT="%Y-%m-%d %T "
export PROMPT_COMMAND='trap "" 1 2 15; history -a >(tee -a ~/.bash_history | while read line; do if [[ $line =~ ^#[0-9]*$ ]]; then continue; fi; logger -p user.info -t "bash[$$]" "($USER) $line"; done); trap 1 2 15;'
это ведёт журнал И предотвращает регистрацию меток времени, которые используются для файла истории bash. Ловушка необходима, поскольку bash будет посылать сигналы в «подзадание» после многократного нажатия strg + c (проверено с помощью bash 4.3). это приведет к выходу текущего пользователя (например, авторизованного с помощью sudo)