우분투에서 같은 것을 시도했습니다이것을 따르라.
개정하다
/etc/bash.bashrc
파일 끝에 다음 줄을 추가하십시오.
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
새 파일 만들기
/etc/rsyslog.d/bash.conf
파일에 줄 추가
local6.* /var/log/commands.log
파일에 줄 추가
/etc/logrotate.d/rsyslog
/var/log/commands.log
Rsyslog 다시 시작
sudo 서비스 rsyslog 다시 시작
우분투에서의 출력:
Feb 2 05:17:58 ip-172-31-21-42 ubuntu: ubuntu [1785]: su - jawad [0]
Feb 2 05:17:58 ip-172-31-21-42 ubuntu: ubuntu [1785]: su - jawad [0]
Feb 2 05:18:38 ip-172-31-21-42 ubuntu: root [1817]: service awslogs restart [0]
Feb 2 05:18:56 ip-172-31-21-42 ubuntu: message repeated 2 times: [ root [1817]: service awslogs restart [0]]
Feb 2 05:20:29 ip-172-31-21-42 ubuntu: root [1817]: service awslogs restart [0]
Feb 2 05:20:41 ip-172-31-21-42 ubuntu: root [1817]: vi /etc/passwd [0]
Feb 2 05:20:52 ip-172-31-21-42 ubuntu: root [1817]: service rsyslog restart [0]
Red Hat Linux에서 작동하지 않습니다.
답변1
나는 항상 bash
명령을 다음과 같이 기록해 왔으며 몇 년 동안 잘 작동했습니다.
readonly PROMPT_COMMAND='history -a >(logger -t "commandlog $USER[$PWD] $SSH_CONNECTION")'
이 readonly
지시어는 사용자가 이를 변경할 수 없도록 합니다.