
In meinem aktuellen Setup werden alle meine Bash-Historien in einer einzigen Datei gespeichert, auf die verwiesen wirdHISTFILE.
Dieser Verlauf umfasst einen Verlauf des Hostsystems und aller Container.
Zusammen mit dieser Historie möchte ich pro Container Folgendes einrichten bash_history_<cont_name>
.
Setup-Details:
- Das Hostsystem verfügt über ein Docker-Container-Setup.
- Alle Container wurden
/home/uname/
mit dem Host geteilt. (.bashrc wird ebenfalls geteilt) - Der gesamte Befehlsverlauf [des Hosts und aller Container] wird in geschrieben
HISTFILE
. - Für schnelle Updates
HISTFILE
wird die Eingabeaufforderung in .bashrc folgendermaßen aktualisiert.
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"
Neben diesem vorhandenen System möchte ich auch den Verlauf der in Containern verwendeten Befehle in einer Datei speichern, die nur für diesen Container bestimmt ist.
Beispiel: Für Container ContA
& ContB,
wird der Befehlsverlauf im gemeinsamen „HISTFILE“ gespeichert und der Befehlsverlauf der jeweiligen Container sollte ebenfalls aktualisiert werden. Für ContA
sollte ~/bash_history_ContA
ebenfalls aktualisiert werden.
PS: Der Befehlsverlauf für einzelne Dateien wird aktualisiert, sobald der Befehl ausgeführt wird. Die Datei bash_history_<cont_name>
pro Container könnte eine verzögert aktualisierte Datei sein.
Antwort1
Für die Option "Der Verlauf einzelner Dateibefehle wird aktualisiert, sobald der Befehl ausgeführt wird" können Sie dies tun miteine der 3 Antworten auf diese Frage(testen Sie, was für Sie am besten funktioniert)
Im PROMPT_COMMAND können Sie auch eine Umleitung zu jeder gewünschten globalen Datei hinzufügen: Fügen Sie einfach vor jeder Eingabeaufforderung den neuesten Befehl hinzu. (Vorsicht: Einige können mehrzeilig sein.)