Linux 커맨드 실시간 명령어 파일로 남겨서 syslog로 전송

niajeong의 이미지

시스템의 실행 명령어를 로깅하려고 합니다.

아래와 같이 하였으나 에러사항이 있어서 질문합니다.

/etc/profile 수정

function history_to_syslog
{
declare cmd
cmd=$(history 1)
logger -p local7.notice -- SESSION = $$, CMD =$cmd
}
trap history_to_syslog DEBUG || EXIT

/etc/syslog.conf

local7.notice /var/log/cmdhistory.log

결과
pr 18 16:38:36 localhost root: SESSION = 27753, CMD = 999 service syslog restart
Apr 18 16:38:39 localhost root: SESSION = 27753, CMD = 1000 cd /var/log
Apr 18 16:38:40 localhost root: SESSION = 27753, CMD = 1001 ls

이런형식으로 결과가 보여집니다.
그러나 어떤경우는 2개의 행으로 중복되어 결과가 보여집니다.
어떤 문제가 있어서 이런 현상이 발생하는지 원인파악이 잘 안되네요.
도움 요청합니다.