로컬 컴퓨터의 파일에있는 특정 패턴을 기반으로 파일을 가져 오려는 원격 Linux 컴퓨터가 있습니다.자바를 사용하는 패턴을 기반으로 파일을 rsync 할 수 없습니다
내가 다음 명령을 사용하여이 작업을 수행 할 수 있어요 터미널 창에서 오전 때 : 나는 baseDir
디렉토리 내의 모든 파일을 복사 할 수 있어요이 명령의 결과로
rsync -avzrm --include '**/someDir/*MG*' --include '*/' --exclude '*' -e "ssh -i /home/localUser/.ssh/id_rsa -l remoteUser" [email protected]:/home/remoteUser/baseDir/ /home/localUser/testDir/
및 그들의 이름에 'MG'를 포함하는 하위 디렉토리. 내가 baseDir
디렉토리 내에있는 모든 파일을 당겨 끝나는하고,
public class DataDumper {
public static void main (String[] args){
try {
String[] cmd = new String[]{"rsync", "-avzrm", "--include", "'**/someDir/*MG*'", "--include", "'*/'", "--exclude", "'*'",
"-e", "ssh -i /home/localUser/.ssh/id_rsa -l ec2-user",
"[email protected]:/home/remoteUser/baseDir/", "/home/localUser/testing"};
Process p = new ProcessBuilder().command(cmd).inheritIO().start();
}
catch (IOException ex) {ex.printStackTrace();}
catch (Throwable th) {th.printStackTrace();}
}
}
을하지만 :
나는 자바 코드를 사용하여 동일한 결과를 달성하기 위해 노력하고 있습니다. 내가 뭘 잘못 했니? 왜 자바는include
과
exclude
옵션을 인식하지 못했을까요? 도움이 될 것입니다. 고맙습니다.
문제점이 명령을 실행하지 않습니다. 내 문제는 명령의 일부 인수가 어떤 이유로 무시된다는 것입니다.
공백이있는 여러 매개 변수가있는 [Java ProcessBuilder]의 가능한 복제본 (https://stackoverflow.com/questions/15111517/java-processbuilder-with-multiple-params-with-spaces) – Joe
정말 도움이되지 않았습니다. 명령을 실행할 수 없다는 것이 아니라 일부 매개 변수를 무시한 것입니다. – Dan