
현재 설정에서는 모든 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에서는 원하는 전역 파일에 대한 리디렉션을 추가할 수도 있습니다. 각 프롬프트 앞에 최신 명령을 추가하기만 하면 됩니다. (주의: 일부는 여러 줄일 수 있습니다)