터미널 명령어 로깅

사용자가 터미널로 접속하여 명령어를 입력한것을 모두 로그로 남기는 방법에 대해 설명한다.

/etc/profile.d/cmd_log.sh

#!/bin/bash
function logging
{
	#stat="$?"
	cmd=$(history|tail -1)
	srcip=`who -m | awk -F'(' '{print $2}' | awk -F')' '{print $1}'`

	if [ "$cmd" != "$cmd_old" ]; then
		#logger -p local1.notice "[2] STAT=$stat"
		logger -p local1.notice "PID= $$, SRC=$srcip, PWD=$PWD, CMD=$cmd"
	fi
	cmd_old=$cmd
}
trap logging DEBUG

위와같이 스크립트를 생성해 두면 된다.

참조링크