Como posso acessar um arquivo aberto excluído no Linux (saída de uma tarefa crontab em execução)?

7

Eu tenho um trabalho crontab de uma hora que funciona com uma saída mtr ( traceroute ) a cada 10 minutos (isso vai passar mais de uma hora antes de ser enviado de volta para mim), e eu quero para ver o progresso atual até agora.

No Linux, usei lsof -n | fgrep cron ( lsof é semelhante a fstat do BSD), e parece que eu encontrei o arquivo, mas ele foi anotado como tendo sido excluído (uma prática padrão para arquivos temporários). arquivos devem ser excluídos logo após a abertura):

COMMAND     PID       USER   FD      TYPE     DEVICE  SIZE/OFF       NODE NAME
...
cron      21742       root    5u      REG      202,0      7255      66310 /tmp/tmpfSuELzy (deleted)

E não pode mais ser acessado pelo nome anterior:

# stat /tmp/tmpfSuELzy
stat: cannot stat '/tmp/tmpfSuELzy': No such file or directory

Como acesso um arquivo que ainda está aberto?

    
por cnst 19.01.2013 / 08:06

1 resposta

12

O arquivo pode ser acessado através do sistema de arquivos /proc : você já conhece o PID e o FD da saída lsof .

cat /proc/21742/fd/5
    
por 19.01.2013 / 08:06