원격 시스템에서 할당량이 있는 디렉터리를 삭제하는 방법은 무엇입니까?

원격 시스템에서 할당량이 있는 디렉터리를 삭제하는 방법은 무엇입니까?

할당량에 도달한 rsync.net 계정이 있고 공간을 확보하기 위해 디렉터리를 삭제(rm -rf)하려고 합니다. 그러나 시도해볼 수 있는 모든 삭제 명령(rm, truncate, find -delete 등)은 "디스크 할당량 초과"와 관련된 오류를 표시합니다.

내가 찾은 유일한 방법은 빈 파일을 scp하고 디렉터리의 모든 파일을 덮어쓰는 것입니다.

이 문제를 해결하는 더 좋은 방법이 있습니까? 이상적으로는 단일 안감입니까?

답변1

아무것도 시도해 보셨나요 fallocate?

다음은 동일한 최종 효과를 갖지만 truncate다른 호출 순서를 사용하며 파일이 파일 시스템 블록 크기의 배수인 ext4 및 XFS에서만 작동합니다.

fallocate -c 0 -l `wc -c <file>` <file>

이렇게 하면 파일이 원본 파일과 길이가 동일한(명백한) 희소 파일이 됩니다(단, ext4, XFS, BTRFS 및 tmpfs에만 해당).

fallocate -p 0 -l `wc -c <file>` <file>

그 외에는 unlink명령이 작동할 수도 있습니다(하지만 귀하가 언급한 것처럼 작동하지 않는 것 같습니다 find -delete.

하지만 말씀하신 내용에 따르면 백엔드 저장소로 BTRFS를 사용하고 있는 것 같습니다. 할당량을 사용해야 하는 경우에는 이 작업을 수행해서는 안 됩니다(BTRFS의 할당량은 대부분의 다른 파일 시스템과 다르게 작동합니다. 이제 매우 중요한 확장성 및 가용성 문제가 있습니다.

관련 정보