FTP 또는 SSH를 통해 대용량 파일을 삭제하는 방법은 무엇입니까?

FTP 또는 SSH를 통해 대용량 파일을 삭제하는 방법은 무엇입니까?

내 서버에서 내가 사용한 스크립트 중 하나가 루트에 빈 파일을 계속 생성하는데 6개월 넘게 눈치채지 못했는데 이제 총 파일이 500,000개가 넘는 파일이 생성되었습니다.

파일이 너무 많고 ftp로만 액세스할 수 있기 때문에 제어판을 통해 해당 디렉토리에 액세스할 수 없습니다. ftp를 사용하더라도 ftp는 파일을 각각 8000씩 자릅니다. 그래서 각각 8000개씩 계속 삭제해야 해요.

호스트에게 삭제해달라고 요청했지만 책임 문제 때문에 삭제할 수 없다고 합니다.

그래서 제가 알고 싶은 것은 어떻게 ftp를 통해 그 500,000개의 파일을 모두 삭제할 수 있느냐는 것입니다. 공유호스팅이라 SSH 접속도 안되네요. 호스팅 제공업체에서는 SSH 액세스를 요청할 수 있지만 이를 확인해야 하며 다음 주까지 사무실이 문을 닫는다고 합니다. 그래서 지금은 ftp에 갇혀있습니다.

FTP를 통해 대용량 파일을 삭제하는 방법을 알려주세요.

그리고 SSH 액세스가 가능하다면 효율적인 방법으로 SSH를 통해 파일을 삭제할 수 있는 방법을 알려주시기 바랍니다.

파일명은 이렇습니다

  • 닫기cp.139619
  • 닫기cp.139619.1
  • 닫기cp.139620
  • 닫기cp.139620.1

답변1

처럼나는 디렉토리에서 파일을 삭제하는 귀하의 웹 공간에 PHP 또는 Perl 파일을 넣을 것이라고 지적했습니다.

귀하 이외의 다른 사람이 스크립트를 쉽게 찾을 수 없도록 하고 POST 또는 GET을 통해 스크립트의 값을 덮어쓸 수 없는지 확인하십시오.

답변2

해당 파일을 삭제하는 데는 꽤 오랜 시간이 걸릴 수 있으며, 해당 시간 동안 높은 I/O가 예상됩니다.

이 문서에는 수많은 파일을 삭제하는 방법에 대한 유용한 조언이 많이 있습니다.수백만 개의 파일이 있는 디렉토리의 rm

귀하의 비용은 수백만 달러는 아닐 수도 있지만 상당히 느릴 것입니다.

답변3

마지막으로 ftp 명령줄을 사용하여 얻었습니다. 나는 창에서 "cmd"를 사용했습니다.

먼저 프롬프트를 꺼야합니다.

prompt

그런 다음 다음 명령으로 삭제하십시오.

mdelete closecp.*

답변4

상자에 SSH로 연결할 수 있으면 다음과 같이 실행할 수 있습니다.

find /path/to/files -maxdepth 1 -name "closecp.*" -delete

그러면 /path/to/file 디렉토리에서 "closecp.*" 형식의 이름을 가진 모든 파일을 찾을 수 있습니다(상황에 맞게 변경). "-maxlength 1" 옵션은 "find" 명령이 하위 디렉터리를 검색하지 못하게 하고 /path/to/file만 검색합니다.

관련 정보