lsof exibe o arquivo restaurado como excluído

1

Se eu criar um arquivo chamado /home/martin/testfile.txt , abra este arquivo com o utilitário less , exclua / home / martin / testfile. txt arquivo e restaurá-lo a partir do diretório de descritor de arquivo sob o / proc / 31148 , onde 31148 é o PID do menos utilitário, então lsof | grep testfile.txt ainda mostra testfile.txt como deletado:

martin@potato:~$ echo test > testfile.txt
martin@potato:~$ ls -li ~/testfile.txt
247 -rw-r--r-- 1 martin martin 5 24. veebr 05:02 /home/martin/testfile.txt
martin@potato:~$ xterm -hold -e "less /home/martin/testfile.txt" &
[1] 31145
martin@potato:~$ lsof | grep testfile.txt
less      31148      martin    4r      REG                8,9        5        247 /home/martin/testfile.txt
martin@potato:~$ rm -v /home/martin/testfile.txt
removed '/home/martin/testfile.txt'
martin@potato:~$ lsof | grep testfile.txt
less      31148      martin    4r      REG                8,9        5        247 /home/martin/testfile.txt (deleted)
martin@potato:~$ cp -v /proc/31148/fd/4 /home/martin/testfile.txt
'/proc/31148/fd/4' -> '/home/martin/testfile.txt'
martin@potato:~$ ls -li ~/testfile.txt
263 -rw-r--r-- 1 martin martin 5 24. veebr 05:04 /home/martin/testfile.txt
martin@potato:~$ cat ~/testfile.txt
test
martin@potato:~$ lsof | grep testfile.txt
less      31148      martin    4r      REG                8,9        5        247 /home/martin/testfile.txt (deleted)
martin@potato:~$ 

É porque testfile.txt recebeu um novo número de inode? Ou existe alguma outra razão pela qual o lsof exibe o arquivo restaurado como excluído?

    
por Martin 24.02.2013 / 03:46

1 resposta

3

Sim, eles são dois arquivos diferentes. Copiando ( cp ) o arquivo de / proc, você está simplesmente criando um novo arquivo com um novo inode. Você pode testá-lo com o comando stat -

[root @ server2 tmp] # stat testfile.txt   Arquivo: test.txt   Tamanho: 9 Blocos: 8 Bloco IO: 4096 arquivo regular Dispositivo: 803h / 2051d Inode: 3684616 Links: 1 Acesso: (0644 / -rw-r - r--) Uid: (0 / root) Gid: (0 / root) Acesso: 2013-02-23 19: 01: 14.000679872 -0800 Modificar: 2013-02-23 19: 01: 14.000679872 -0800 Alteração: 2013-02-23 19: 01: 14.000679872 -0800

[root @ server2 tmp] # stat testfile.txt   Arquivo: test.txt   Tamanho: 9 Blocos: 8 Bloco IO: 4096 arquivo regular Dispositivo: 803h / 2051d Inode: 3684617 Links: 1 Acesso: (0644 / -rw-r - r--) Uid: (0 / root) Gid: (0 / root) Acesso: 2013-02-23 19: 02: 46.422854012 -0800 Modificar: 2013-02-23 19: 02: 44.507799688 -0800 Alteração: 2013-02-23 19: 02: 44.507799688 -0800

    
por 24.02.2013 / 04:07

Tags