모든 파일을 나열하고 SFTP 서버에 있는 모든 파일의 전체 크기를 얻는 방법은 무엇입니까?

모든 파일을 나열하고 SFTP 서버에 있는 모든 파일의 전체 크기를 얻는 방법은 무엇입니까?

다음을 사용하여 SFTP 서버에 연결되어 있습니다.

sftp -i key.pem user@server

서버에는 로그가 포함되어 있으며 ls. 문제는 ls가 4일 이전 로그를 가져올 수 없는 것 같다는 것입니다. 디렉토리의 모든 로그를 어떻게 나열하고 전체 크기를 얻을 수 있는지 궁금합니다.

크기에 대한 비슷한 질문이 요청되었습니다.여기을 사용하여 솔루션을 제공합니다 du -hc. 하지만 이 명령은 내 SFTP 서버에 존재하지 않으며 SSH 액세스 권한도 없습니다. 어떤 아이디어가 있나요?

답변1

lftp명령 이 있고 프로토콜 du을 지원합니다 sftp.

lftp sftp://user@host

또는 SSH 키를 지정하여 암호 프롬프트를 건너뛰려면 다음을 수행하십시오.

lftp -e 'set sftp:connect-program ssh -axi key.pem' sftp://user:@host

그리고 프롬프트에서 실행 du(또는 du -ba바이트 단위 크기와 함께 각 파일을 나열하거나 du -ha접미사를 사용)합니다 sftp. du디스크 사용량이 아닌 겉보기 크기를 제공하고 디렉터리 파일의 크기를 포함하지 않는다는 점에서 Unix 명령과 다릅니다 .

4일보다 오래된 파일이 나열되지 않으면 ls해당 파일이 없거나 더 이상 존재하지 않기 때문일 가능성이 높습니다. 또는 클라이언트 ls의 명령은 다음 작업을 수행합니다.sftplftpSFTP 프로토콜의 "디렉터리 읽기" 쿼리 또는 일련의 쿼리디렉토리 내용을 검색합니다. 서버가 거기에 있는 것을 보내지 않고 SFTP를 통하는 것 외에는 데이터에 액세스할 수 있는 방법이 없다면 할 수 있는 일이 거의 없습니다.

관련 정보