LINUX.ORG.RU

история текущей сессии в bash


0

1

Хочу сделать, чтобы при логауте сервер посылал на почту историю команд завершившейся сессии. Если в ~/.bash_logout прописать что-то вроде

tail ~/.bash_history | mailx -s "report" user@mail.ru

или

~/history_report | mailx -s "report" user@mail.ru
comp:~# cat ~/history_report
#!/bin/bash -i
history

то на почту приходит только история команд без последней сессии.

Есть ли какие-нибудь варианты сделать то, что мне нужно?


shopt -s histappend
PROMPT_COMMAND='history -a'
Что-то из этого в .bashrc. Это будет коммитить историю каждую команду.

x3al ★★★★★
()

info history. скорее всего то, что ты ищешь.

anonymous
()
5 сентября 2011 г.
Ответ на: комментарий от x3al

Ну это здорово, только получается проблематично различить отдельные сессии одного и того же юзера - всё же в кучу будет писаться.

Есть ещё ~/.bash_logout, но я не совсем понимаю как он работает. Ну то есть понятно, что он выполняется каждый раз, когда кто-то закрывает сессию, но похоже, что выполняется при этом не в этой же сессии, а в какой-то отдельной, своей. Тогда если несколько человек залогинены под одним и тем же юзером, то невозможно узнать, кто именно вышел и инициировал выполнение bash_logout.

Есть какие-нибудь идеи, как выдавать инфу только по одной сессии, когда залогинены несколько человек?

satir
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.