저는 Xubuntu 14.04에서 Transmission 2.82를 사용하고 있으며 파일 관리자에서 다운로드한 파일을 영구적으로 삭제한 후에도 Transmission의 작업이 여전히 활성 상태이고 시드를 계속 유지하며 사용 가능한 디스크 공간이 변경되지 않은 것을 확인하여 이를 시도해 보았습니다 ls -l /proc/[pid]/fd
. 알아 냈어 :
lr-x------ 1 name name 64 May 4 20:39 81 -> /home/downloads/ubuntu-16.04-server-i386.iso (deleted)
그런 다음 파일을 다시 다운로드하고 rm
작업을 삭제하지 않고 삭제했는데 디스크 공간이 비워지고 ls -l /proc/[pid]/fd
파일과 관련된 항목이 제공되지 않았으며 작업은 0kb/s로 시드되었습니다.
rm
그러나 이것이 차이가 있는지 확인하기 위해 rm
작업이 시드되는 동안 다운로드한 파일을 삭제하려고 세 번 시도했습니다. 그리고 동일한 결과를 받을 때마다 작업이 활성화되고 시드되었으며 사용 가능한 디스크 공간에는 변화가 없었습니다. 그리고 ls -l /proc/[pid]/fd
다음과 같은 결과가 나왔습니다.
lr-x------ 1 name name 64 May 4 20:39 26 -> /home/downloads/ubuntu-16.04-server-i386.iso (deleted)
그리고 ls ubuntu-16.04-server-i386.iso
다음을 제공합니다:
ls: cannot access ubuntu-16.04-server-i386.iso: No such file or directory
또한 다운로드 폴더 du -s
에서 별도로 다른 작업을 사용해 보았습니다 .df /home
작업이 실행 중이고 파일이 삭제되지 않습니다.
$ du -sh
11G
$ df -h /home
Filesystem Size Used Avail Use% Mounted on /dev/sda1 58G 54G 1.2G 98% /
작업이 실행 중이고 파일이 삭제됩니다( 사용 rm
)(삭제 후에도 전송은 시드된 상태로 유지됨).
$ du -sh
9.9G
$ df -h /home
Filesystem Size Used Avail Use% Mounted on /dev/sda1 58G 54G 1.2G 98% /
작업 삭제, 파일 삭제(이전 단계):
$ du -sh
9.9G
$ df -h /home
Filesystem Size Used Avail Use% Mounted on /dev/sda1 58G 54G 1.5G 98% /
그러면 다운로드한 파일은 어떻게 되나요? 나 이후에 전송이 어떻게 시드 작업을 수행하게 됩니까 rm
? 파일을 복구할 수 있나요? du
및 다른 출력을 제공 하므로 df
파일이 다른 곳으로 재배치됩니까?
답변1
프로그램이 파일을 삭제할 때 열려 있는 파일이 있는 경우 커널은 해당 파일을 삭제된 것으로 표시할 뿐 프로그램 중단을 방지하기 위해 디스크 공간을 확보하지는 않습니다(파일이 프로그램 기능에 중요한지 알 수 있는 방법이 없습니다). 프로그램이 파일을 닫으면 디스크 공간이 확보됩니다. 이 경우 /proc/<pid>/fd
파일을 연 프로세스를 보면 "(삭제됨)"이 표시됩니다.
따라서 커널은 전송에 사용되는 파일을 삭제하지 않도록 도와줍니다.
Transport를 사용하여 파일을 공유하고 싶지 않다면 Transport에서 해당 파일을 삭제해야 합니다. 제가 기억하기로 Transport에는 공유 중지의 일부로 파일을 삭제할 수 있는 옵션도 있습니다.
/proc/<pid>/fd/
파일에 대한 링크(프로세스가 열려 있는 동안에만 존재함)이기 때문에 실제로 파일을 복사하여 복구할 수 있습니다.
root@mypc:~# pgrep transmission
1470
root@mypc:~# cd /proc/1470/fd
root@mypc:/proc/1470/fd# ls -l | grep deleted
lr-x------ 1 user user 64 Dec 8 02:55 56 -> /mnt/download/my.file (deleted)
root@mypc:/proc/1470/fd# cp 56 /mnt/download/myrestored.file
답변2
전송으로 인해 파일을 다운로드할 때 알 수 없는 위치에 파일이 저장되는 것 같습니다. 완료되면 다운로드 폴더에 동일한 파일에 대한 하드 링크가 생성되지만 하드 링크는 여전히 자체 디렉토리에 유지됩니다(아마도 ~/.transmission 또는 유사).
다음에 설명된 대로 완료된 다운로드에 대한 모든 하드 링크를 찾을 수 있습니다.특정 파일에 대한 모든 하드 링크를 찾는 방법은 무엇입니까?또는 다음을 사용하십시오. 파일의 inode 번호를 기억해 두십시오 ~/Downloads
. ls -i
그런 다음 홈 폴더에서 실행하여 다른 파일을 찾을 수 있습니다 find . -inum NUM
.