각 컨테이너에 대해 별도의 Bash 기록 파일과 통합 기록 파일을 설정하는 방법은 무엇입니까?

각 컨테이너에 대해 별도의 Bash 기록 파일과 통합 기록 파일을 설정하는 방법은 무엇입니까?

현재 설정에서 모든 bash 기록은 다음을 가리키는 파일에 저장됩니다.HISTFILE.

이 기록에는 호스트 시스템과 모든 컨테이너의 기록이 포함됩니다.

이 기록에 더해 각 컨테이너에 대해 설정하고 싶습니다 bash_history_<cont_name>.

설정 세부정보:

  • 호스트 시스템에는 도커 컨테이너 설정이 있습니다.
  • 모든 컨테이너는 /home/uname/호스트 시스템과 공유됩니다. (.bashrc도 공유됩니다)
  • [호스트 및 모든 컨테이너]에 대한 모든 명령 기록이 기록됩니다 HISTFILE.
  • 빠른 업데이트를 위해 HISTFILE다음과 같이 .bashrc의 프롬프트를 업데이트하세요.
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"

이 시스템이 갖춰져 있습니다. 또한 컨테이너 내에서 사용된 명령 기록을 해당 컨테이너 관련 파일에 저장하고 싶습니다.

전임자. 컨테이너의 경우 ContA명령 ContB,기록은 공개 "HISTFILE"에 저장되며 개별 컨테이너의 명령 기록도 업데이트되어야 합니다. 의 경우 ContA~/bash_history_ContA업데이트해야 합니다.

PS: 단일 파일 명령 기록은 명령 실행 후 즉시 업데이트됩니다. 각 bash_history_<cont_name>컨테이너는 지연된 업데이트 파일일 수 있습니다.

답변1

"명령 실행 후 즉시 단일 파일 명령 기록 업데이트"의 경우 다음 명령을 사용하여 이 작업을 수행할 수 있습니다.이 질문에 대한 답변 3개 중 1개(어떤 것이 당신에게 가장 적합한지 테스트해보세요)

PROMPT_COMMAND에서는 원하는 전역 파일에 리디렉션을 추가할 수도 있습니다. 각 프롬프트 앞에 최신 명령을 추가하기만 하면 됩니다. (주의: 일부는 여러 줄일 수 있습니다)

관련 정보