find . -type f
我们的一个用户在我们的一台服务器上发出了一条命令,在 中查看时该命令当前正在运行ps aux
。
我如何知道这个命令是从哪个目录发出的。
该过程是否具有类似当前工作目录的环境变量,我可以检索该变量来获取我想要的内容或类似的东西?
注意:上述命令是人为的,实际命令是其他内容。但是否可以找到发出该命令的目录
find . -type f
我们的一个用户在我们的一台服务器上发出了一条命令,在 中查看时该命令当前正在运行ps aux
。
我如何知道这个命令是从哪个目录发出的。
该过程是否具有类似当前工作目录的环境变量,我可以检索该变量来获取我想要的内容或类似的东西?
注意:上述命令是人为的,实际命令是其他内容。但是否可以找到发出该命令的目录
您可以使用
pwdx
专门为此目的设计的命令来报告进程的当前工作目录。ps aux
命令轻松找到该进程的 PIDps aux | grep "find . -type f"
(或者如果你已经有了它)pwdx <PID>
您也可以一次性完成此操作:
另一种方法(对于某些没有
pwdx
但确实有的系统很有用ls
)可以是@Kamil Maciorowski 在评论中提到的:正如Ysroel Tech所指出的, 在进程运行时可以使用或
pwdx <PID>
。 我个人更喜欢后者。ls -l /proc/<PID>/cwd
如果该过程已经完成,这将没有任何意义,您可以尝试通过 journactl logs 查看您知道发出命令的时间间隔,例如,
journalctl --since "2024-09-27 00:00:00" --until "2024-09-27 <time command stopped>"
如果没有设置任何类型的日志审计方法,则无法保证找到该命令。可能还有我不知道的其他方法,但我确实建议您实施一种方法来做到这一点。