Назад | Перейти на главную страницу

lsof отображает восстановленный файл как удаленный

Если я создам файл с именем /home/martin/testfile.txt, откройте этот файл с помощью Меньше утилита, удалить /home/martin/testfile.txt файл и восстановить его из каталога файлового дескриптора в папке / proc / 31148, где 31148 - PID Меньше полезность, тогда lsof | grep testfile.txt все еще показывает testfile.txt как удалено:

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:~$ 

Это потому что testfile.txt получил новый номер inode? Или есть другая причина, почему lsof отображает восстановленный файл как удаленный?

Да, это два разных файла. Копируя (cp) файл из / proc, вы просто создаете новый файл с новым индексом. Вы можете проверить это с помощью statкоманда -

[root @ server2 tmp] # stat testfile.txt Файл: test.txt Размер: 9 Блоки: 8 Блок ввода-вывода: 4096 обычных файлов Устройство: 803h / 2051d Inode: 3684616 Ссылки: 1 Доступ: (0644 / -rw-r - r--) Uid: (0 / root) Gid: (0 / root) Доступ: 2013-02-23 19: 01: 14.000679872 -0800 Изменить: 2013- 02-23 19: 01: 14.000679872 -0800 Изменение: 2013-02-23 19: 01: 14.000679872 -0800

[root @ server2 tmp] # stat testfile.txt Файл: test.txt Размер: 9 Блоки: 8 Блок ввода-вывода: 4096 обычных файлов Устройство: 803h / 2051d Inode: 3684617 Ссылки: 1 Доступ: (0644 / -rw-r - r--) Uid: (0 / root) Gid: (0 / root) Доступ: 2013-02-23 19:02: 46.422854012 -0800 Изменить: 2013- 02-23 19: 02: 44.507799688 -0800 Изменение: 2013-02-23 19: 02: 44.507799688 -0800