gpt4 book ai didi

bash - kubectl exec命令未记录在pod的bash历史记录中

转载 作者:行者123 更新时间:2023-12-02 12:26:05 25 4
gpt4 key购买 nike

有没有一种方法可以通过pod中的history命令记录kubectl exec命令?
我想通过监视历史命令来收集在容器上执行的所有命令。
例:kubectl exec podname -n namespace -c container -- bash -c "ls" ==>可以通过历史命令记录下来。

最佳答案

为了获得此行为的完整上下文,需要澄清两件事:
首先,kubectl execAPI-based的整洁 docker exec (警告:中级成员的故事)包装。
这很重要,因为这意味着它将使用Kubernetes API将您的命令中继到Docker。这意味着,在这种情况下,与 shell 相关的任何行为都直接与Docker如何在容器内实现命令执行相关,而与kubectl无关。
要记住的第二件事是命令本身:history,它是一个shell功能,而不是一个单独的二进制文件。
实现取决于所使用的 shell 程序,但是通常在 session 关闭后将命令历史记录写入历史文件之前,会将命令历史记录缓存在内存中。可以使用 history features“强制”执行此操作,但是可以根据shell的实现而有所不同,并且在使用docker exec命令时可能不是统一,可靠的方法。
考虑到这些因素,并且您的请求似乎旨在监视容器中执行的操作,也许更好的方法是使用Linux auditrecord commands executed by users
这不仅不依赖于上述要点,还包含writes logs to a file,这使您可以使用Kubernetes logging strategy来选择它们,并将它们导出到用作日志接收器的任何位置,从而便于进行后验。

关于bash - kubectl exec命令未记录在pod的bash历史记录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63129399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com