rsyslog 를 이용한 history 실시간 로그 생성
리눅스 서버 운영 시 히스토리 커맨드 사용은 매우 필수사항이다.
하지만 실시간으로 반영되지 않고, 캐시메모리에 일시 기억되고 있다가
접속이 종료되어야 그때 히스토리에 기록에 남는다.
다음은 히스토리를 실시간으로 반영하는 작업을 설명 한다.
기준 : CentOS 7
1. history 실시간 로그 기록 스크립트 생성
# vi /etc/rsyslog/conf
function history_to_syslog
{
cmd_old=$cmd
who=$(whoami)
cmd=$(history 1)
TTY=`tty`
HISNAME="`basename $TTY`"
ip=`who |grep pts/${HISNAME} |cut -f 2 -d \(|cut -f 1 -d \)`
if [ "$cmd" != "$cmd_old" ]; then // 커맨드가 두 번씩 출력 되는 현상 수정
logger -p local3.notice -- IP=$ip USER=$who, PID=$$, PWD=$PWD, CMD=$cmd
fi
}
trap history_to_syslog DEBUG || EXIT
HISTSIZE=10000
HISTFILESIZE=1000000
# source /etc/profile
2. rsyslog 설정
rsyslog config 파일에 아래 내용을 추가해준다.
*.info;mail.none;authpriv.none;cron.none;local3.!notice /var/log/messages
local3.notice /var/log/history.log
# vi /etc/rsyslog/conf
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;local3.!notice /var/log/messages
# Save history.log
local3.notice /var/log/history.log
# systemctl restart rsyslog
3. 작동 확인 테스트
- 터미널 창을 2개 열어놓고, 출력이 잘 되는지 테스트.
터미널 1 : # tail -f /var/log/history.log
터미널 2 : # ls; # top; 등등 커맨드 암거나 입력
4. 계정별 확인 방법
백업 된 히스토리 파일 추출
# cat /var/log/)history.log | grep -i "user=blink" > ./blink_history.log
끝.
'Study > Linux' 카테고리의 다른 글
CentOS7 NFS 설치 및 설정 (0) | 2020.01.06 |
---|---|
codeblock test (0) | 2019.11.18 |
삼바(SAMBA)를 이용한 리눅스 <-> 윈도우10 공유폴더 10분만에 만들기 (0) | 2019.11.18 |
[CentOS] 히스토리(history) 사용 시 날짜, 시간 표시하기 (0) | 2019.11.17 |