[java] 자바를 통한 scp
Java 프로그래밍 언어를 통해 scp 전송을 수행하는 가장 좋은 방법은 무엇입니까? JSSE, JSch 또는 탄력성 자바 라이브러리를 통해이 작업을 수행 할 수있을 것 같습니다. 이 솔루션들 중 어느 것도 쉬운 답이없는 것 같습니다.
답변
답변
답변
봐 여기
이것이 Ants의 SCP 작업의 소스 코드입니다. “execute”메소드의 코드는 그것의 너트와 볼트가있는 곳입니다. 이것은 당신에게 무엇이 필요한지에 대한 공정한 아이디어를 줄 것입니다. 그것은 내가 믿는 JSch를 사용합니다.
또는 Java 코드에서이 Ant 태스크를 직접 실행할 수도 있습니다.
답변
Jsch를 좀 더 친숙하게 만들기 위해 몇 가지 유틸리티 메서드로 래핑하고 호출했습니다.
JSCP
여기에서 사용 가능 : https://github.com/willwarren/jscp
폴더를 tar로 압축하고 어딘가에 scp 한 다음 압축을 푸는 SCP 유틸리티입니다.
용법:
// create secure context
SecureContext context = new SecureContext("userName", "localhost");
// set optional security configurations.
context.setTrustAllHosts(true);
context.setPrivateKeyFile(new File("private/key"));
// Console requires JDK 1.7
// System.out.println("enter password:");
// context.setPassword(System.console().readPassword());
Jscp.exec(context,
"src/dir",
"destination/path",
// regex ignore list
Arrays.asList("logs/log[0-9]*.txt",
"backups")
);
또한 유용한 클래스 (Scp 및 Exec, 거의 동일한 방식으로 작동하는 TarAndGzip)를 포함합니다.
답변
이것은 고수준 솔루션 이며 재발 명 할 필요가 없습니다. 빠르고 더럽습니다!
1) 먼저 http://ant.apache.org/bindownload.cgi 로 이동하여 최신 Apache Ant 바이너리를 다운로드합니다. (현재는 apache-ant-1.9.4-bin.zip).
2) 다운로드 한 파일을 추출하고 JAR ant-jsch.jar ( “apache-ant-1.9.4 / lib / ant-jsch.jar”)를 찾습니다. 프로젝트에이 JAR을 추가하십시오 . 또한 ant-launcher.jar 및 ant.jar.
3) Jcraft jsch SouceForge 프로젝트로 이동 하여 항아리를 다운로드하십시오. 요즘은 jsch-0.1.52.jar 입니다. 또한 이 JAR을 프로젝트에 추가하십시오 .
이제 네트워크를 통한 파일 복사 용 Ant Classes Scp 또는 SSH 서버의 명령 용 SSHExec 을 Java 코드로 쉽게 사용할 수 있습니다 .
4) 코드 예제 Scp :
// This make scp copy of
// one local file to remote dir
org.apache.tools.ant.taskdefs.optional.ssh.Scp scp = new Scp();
int portSSH = 22;
String srvrSSH = "ssh.your.domain";
String userSSH = "anyuser";
String pswdSSH = new String ( jPasswordField1.getPassword() );
String localFile = "C:\\localfile.txt";
String remoteDir = "/uploads/";
scp.setPort( portSSH );
scp.setLocalFile( localFile );
scp.setTodir( userSSH + ":" + pswdSSH + "@" + srvrSSH + ":" + remoteDir );
scp.setProject( new Project() );
scp.setTrust( true );
scp.execute();
답변
는 openssh 프로젝트 목록 여러 자바의 대안은, Java 용 Trilead SSH는 당신이 요구하는지에 맞는 것 같다.
답변
저는 Zehon이라는 SCP가있는이 SFTP API를 사용합니다. 아주 훌륭하고 많은 샘플 코드와 함께 사용하기 쉽습니다. 다음은 http://www.zehon.com 사이트입니다 .