2016-09-21 4 views
-1

jsch sftp를 사용하여 재귀 적으로 Windows에서 원격 Linux 서버로 폴더를 복사 할 수 있습니까?Windows와 Linux 원격 서버간에 콘텐츠를 전송/동기화하는 방법은 무엇입니까?

이미 sftpchannel.put (src, dest)을 사용해 보았지만 파일 만 전송합니다. 필자는 또한 파일 목록을 반복하여 디렉토리를 찾고 재귀 루프를 실행하려고 시도했지만 추가 예외 처리를 통해 코드를 더욱 복잡하게 만들었습니다. 이 일을하는 다른 방법이 있습니까?

Java 코드를 사용하여 Windows와 Linux 컴퓨터간에 rsync와 같은 것을 사용할 수 있습니까? 제발 도와주세요 .. !!! 미리 감사드립니다 ... !!!

+1

[JSch에서 channelsftp를 사용하여 전송 폴더 및 하위 폴더를 복제 할 수 있습니까?] (http://stackoverflow.com/questions/11650013/transfer-folder-and-subfolders-using-channelsftp-in-jsch) –

답변

0

Jsch에는 로컬에서 원격으로 (또는 원격에서 로컬로) 재귀 적으로 디렉토리를 전송하는 SFTP 작업이 없습니다. Jsch를 사용하여 디렉토리를 재귀 적으로 전송하려면 전송할 파일 및 디렉토리 목록을 구성하는 코드를 작성한 다음 ChannelSftp.mkdir() 호출을 실행하여 각 원격 디렉토리를 만들고 ChannelSftp.put() 작업을 실행하여 각 파일을 전송해야합니다.

자바에서 rsync을 사용하는 유일한 방법은 rsync command line utility을 외부 명령으로 호출하는 것입니다. ssh command line utility 또는 다른 외부 프로그램을 호출하여 원격 서버에 자체 연결합니다. Jsch는 일반적으로 관련이 없습니다.

+0

우리가 드래그 앤 드롭 WinSCP를 통해 폴더/파일을 .. 내가 자바 코드를 통해 동일한 동작을 모방 싶어요. –