다시 다운로드하기 어려운 소스에서 다운로드하는 파일이 있지만 실수로 파일 시스템 네임 스페이스 (/ tmp / blah)에서 삭제 된 파일이 있는데이 파일을 복구하고 싶습니다.
일반적으로 할 수 cp /proc/$PID/fd/$FD /tmp/blah
는 있지만이 경우 파일이 여전히 다운로드 중이므로 부분 스냅 샷 만 가져옵니다. 또한 다운로드가 완료되면 다운로드 프로세스 (예 : Chrome)가 FD를 닫습니다.
inode로 복구하거나 하드 링크를 만드는 방법은 무엇입니까? 다른 솔루션? 차이가 있다면 주로 ext4에 관심이 있습니다.
답변
파일을 계속 복사하려면 tail을 사용하십시오.
tail -c +0 -f /proc/$pid/fd/$fd > filename
물론 다운로드가 완료되면 테일 프로세스를 수동으로 (또는 다른 외부 수단으로) 중지해야합니다.
답변
fdlink의 리눅스 커널 모듈과 간단한 응용 프로그램으로 구성된 프로젝트는, 취지는 열린 파일 기술자에 새 링크를 만들 수 있습니다. 나는 그것을 시도하지 않았습니다.
답변
이것은 inode를 복구하여 작업을 수행하지는 않지만 작업을 완료합니다.
cp /proc/$PID/fd/$FD /tmp/blah
kill $PID
wget -c $URL -O /tmp/blah
또는 전체 브라우저를 종료하지 않으려면 Chrome에서 다운로드를 수동으로 중지하십시오.
답변
이것에 대한 하드 링크를 원한다면 man ln
fd 디렉토리에서 -s 옵션을 사용하여 (을 참조하십시오 ) 파일 ls -f
번호 (주로 두 자리 숫자)를 찾아서ln NUMBER destination-file -s