SFTP 서버에서 여러 폴더, 여러 파일 등 대량의 데이터를 다운로드하고 있습니다. 내가 다운로드하는 모든 항목의 그래프는 나뭇가지로 가득 찬 숲처럼 보입니다.
프로젝트의 현재 아이디어는 다음과 같습니다.
- 모든 파일을 로컬 환경으로 FTP로 전송
- 모든 파일이 로컬 환경에 있으면 압축을 푼다.
- 각 파일에 대해 데이터 무결성 검사를 실행합니다.
- 자동으로 구성된 스토리지를 사용하여 3단계를 통해 압축이 풀린 모든 데이터를 데이터베이스 시스템으로 푸시합니다.
AWS의 EC2 인스턴스에 연결된 EBS 볼륨에 모든 데이터를 로컬로 저장합니다. 위의 첫 번째 단계를 시작한 후 인스턴스로 돌아와 보니 EBS 볼륨이 가득 찼습니다. 그래서 하드 드라이브의 크기를 두 배로 늘리고 첫 번째 단계를 다시 시작했습니다. 그리고 몇 시간 후에 볼륨이 다시 꽉 찼다는 사실을 발견했습니다.
위의 프로세스를 작성한 후에는 한 번에 매우 많은 공간을 차지하지 않도록 데이터의 여러 하위 집합을 반복적으로 처리하는 일부 스크립트를 개발하는 것의 가치를 알 수 있습니다. 하지만 저는 게으르게 몇 시간 안에 엄청난 양의 EBS 볼륨을 프로비저닝하고, 이 모든 작업을 한 번에 수행하여 몇 시간의 개발 시간을 절약하고 싶었습니다.
SFTP(Ssh 없음, 다른 프로토콜 없음)를 통해서만 데이터에 액세스할 수 있다는 점을 감안할 때 이러한 모든 파일이 디스크에서 얼마나 많은 공간을 차지하고 있는지 알려줄 수 있는 FTP 명령이 있습니까? 이 정보를 사용하여 구성할 EBS 볼륨 크기의 하한을 알고 싶습니다.
답변1
lftp
du
모든 것을 재귀적으로 나열하고 요약하는 sftp(또는 아마도 lftp가 지원하는 모든 프로토콜)를 통해 실행할 수 있는 내장 명령이 있습니다 .
$ lftp sftp://user@hostname/
lftp HOST:~> du -s
… wait a while …
1656724 .
lftp는 캡슐화되어 있습니다.더반,우분투, 그리고여러 RPM 기반 배포판.