"/proc"의 정보에서 파일을 복구할 수 있는 방법이 있습니까? [복사]

"/proc"의 정보에서 파일을 복구할 수 있는 방법이 있습니까? [복사]

방금 인터뷰에서 물었습니다. 누군가 /var/log/apache/access.log아파치 로그 파일을 작성하는 동안 실수로 삭제한 경우 복원할 수 있습니까?

내 대답 후에 면접관은 inode파일 시스템에서 아파치 프로세스 세부 정보를 복구한 /proc다음 파일을 복구할 수 있다고 말했습니다. 전화통화라서 제대로 이해를 못했어요.

그럼 누군가 이것을 설명할 수 있나요?

답변1

불행하게도 새 이름을 파일 시스템의 inode에 연결할 수 있는 방법은 없습니다.

하지만 파일 내용을 새 파일에 복사할 수 있습니다.

# in shell 1
bash -c 'echo $$; exec cat >delfile'
27225

따라서 파일을 열어두는 프로세스의 PID를 확인해야 합니다. 그런 다음 삭제된 파일의 파일 설명자를 확인합니다.

# in shell 2, same directory
$ rm delfile
$ ll /proc/27225/fd
insgesamt 0
lrwx------ 1 hl hauke 64 20. Jun 00:38 0 -> /dev/pts/4
l-wx------ 1 hl hauke 64 20. Jun 00:38 1 -> '/crypto/home/hl/tmp/delfile (deleted)'
lrwx------ 1 hl hauke 64 20. Jun 00:38 2 -> /dev/pts/4

그런 다음 내용을 복사할 수 있습니다.

cp /proc/27225/fd/1 restored_file

관련 정보