Um comando find . -type f
foi emitido em um de nossos servidores por um de nossos usuários e ele está em execução quando visualizado em ps aux
.
Como posso saber de qual diretório esse comando foi emitido?
Esse processo tem uma variável env, como o diretório de trabalho atual, que eu possa recuperar para obter o que quero ou algo assim?
Nota: O comando acima é artificial e o comando real é outra coisa. Mas é possível descobrir em qual diretório ele foi emitido
Você pode usar o
pwdx
comando que foi projetado especificamente para essa finalidade para relatar o diretório de trabalho atual de um processo .ps aux
pode encontrar facilmente o PID deste usandops aux | grep "find . -type f"
(ou se você já o tiver)pwdx <PID>
Você também pode fazer isso de uma só vez como:
Outra maneira de fazer isso (útil para alguns sistemas que não vêm com o ,
pwdx
mas têmls
) pode ser o que @Kamil Maciorowski mencionou nos comentários:Conforme apontado por Ysroel Tech , pode-se usar ou
pwdx <PID>
enquantols -l /proc/<PID>/cwd
o processo está sendo executado.Eu pessoalmente prefiro o último.
Se o processo já tiver sido concluído, isso não servirá para nada e você pode tentar analisar os logs do journactl durante o intervalo de tempo em que sabe que o comando foi emitido, por exemplo,
journalctl --since "2024-09-27 00:00:00" --until "2024-09-27 <time command stopped>"
sem garantia de que o comando será encontrado se nenhum tipo de método de auditoria de log tiver sido definido.Pode haver outras maneiras que eu desconheço, mas recomendo que você implemente um método para fazer isso.