통합 기록 파일과 함께 각 컨테이너에 대해 개별 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업데이트해야 합니다.

추신: 단일 파일 명령 기록은 명령이 실행되는 즉시 업데이트됩니다. 컨테이너당 은 bash_history_<cont_name>게으른 업데이트 파일일 수 있습니다.

답변1

"단일 파일 명령 기록은 명령이 실행되자마자 업데이트됩니다"의 경우 다음을 사용하여 수행할 수 있습니다.이 질문에 대한 답변 3개 중 하나(자신에게 가장 적합한 것을 테스트해 보세요)

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

관련 정보