如何為每個容器設定單獨的 Bash 歷史文件以及統一的歷史文件?

如何為每個容器設定單獨的 Bash 歷史文件以及統一的歷史文件?

在我目前的設定中,所有 bash 歷史記錄都儲存在一個文件中,該文件指向HISTFILE.

此歷史記錄包括主機系統和所有容器的歷史記錄。

除了這段歷史之外,我想為每個容器設定bash_history_<cont_name>

設定詳情:

  • 主機系統有一個 docker 容器設定。
  • 所有容器都/home/uname/與主機共用。 (.bashrc 也是共享的)
  • [主機和所有容器]的所有命令歷史記錄都被寫入HISTFILE
  • 為了快速更新HISTFILE,請按以下方式在 .bashrc 中更新提示。
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"

隨著這個系統的到位。我還想將容器中使用的命令的歷史記錄保存到專用於該容器的文件中。

前任。對於容器ContAContB,命令歷史記錄將保存到公共「HISTFILE」中,並且各個容器的命令歷史記錄也應更新。對於ContA~/bash_history_ContA也應該更新。

PS:單一檔案命令歷史記錄在命令執行後立即更新。每個bash_history_<cont_name>容器可能是一個延遲更新的檔案。

答案1

對於“執行命令後立即更新單一檔案命令歷史記錄”,您可以使用這個問題的 3 個答案之一(測試最適合您的)

在 PROMPT_COMMAND 中,您還可以將任何重定向添加到您想要的任何全域檔案:只需在每個提示之前添加最新的命令即可? (小心:有些可能是多行的)

相關內容