Encontre o arquivo em execução na porta de hospedagem python

0

Eu tenho uma localhost:5000 port hospedada por python3 server em ubuntu . Como eu sei qual arquivo ele serve sem saber nada extra?

Estou usando lsof -i :5000 e só sei que ele é hospedado pelo python 3. Eu estou tentando localizar o arquivo / pasta hospedado por que, sem qualquer conhecimento extra dado. A coisa que eu sei que sim, há algum arquivo sendo hospedado na porta 5000 usando python3. Mas eu não sei qual é o nome do arquivo hospedado e qual diretório está localizado.

Também tentei fuser 5000/tcp -v , mas o id não mostra o arquivo hospedado.

Isso é possível e qual comando eu preciso para obter todos os arquivos / pastas hospedados por ele?

    
por desmondlee 29.05.2018 / 06:44

1 resposta

2

lsof deveria ter informado o PID do processo. Vamos chamá-lo de $pid . Investigue o que está dentro de /proc/$pid/ . Alguns dos seguintes comandos podem exigir acesso root (por exemplo, você pode querer sudo su - ).

cd /proc/$pid
readlink exe      # the executable
readlink cwd      # current working directory
xxd cmdline       # command line (xxd useful because items are null-separated)

cd /proc/$pid/fd
ls -l             # file descriptors in use

Além disso, interaja com o servidor (por exemplo, faça o download do arquivo) enquanto usa strace para ver o que ele faz. Veja esta resposta: como investigar o que um processo está fazendo?

Ou você pode fazer o download do arquivo e tentar encontrar uma duplicata comparando o conteúdo. A comparação preliminar por tamanho pode acelerar bastante as coisas.

file="/path/to/the/downloaded/file"
size='<"$file" wc -c'

# now you will probably want to use sudo
find / -type f ! -path "/proc/*" ! -path "/sys/*" ! -path "/dev/*" -size ${size}c -exec cmp -s "$file" {} \; -print

unset -v file size    # just to clean

Nota: excluí a /proc/ , /sys/ e /dev/ . Você também pode se familiarizar com -xdev (veja man 1 find ) e usá-lo talvez .

    
por 29.05.2018 / 08:19