Đây là một phần của mã của tôi để sao chép tập tin từ địa phương đến một máy từ xaJava runtime exec với lệnh scp
try {
Process cpyFileLocal = Runtime.getRuntime().exec("scp " + rFile+"*.csv" + " [email protected]" + host + ":" + lFile);
InputStream stderr = cpyFileLocal.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<ERROR>");
while ((line = br.readLine()) != null) {
System.out.println(line);
}
System.out.println("</ERROR>");
int exitVal = cpyFileLocal.waitFor();
System.out.println("Process exitValue: " + exitVal);
System.out.println("...." + cpyFileLocal.exitValue());
System.out.println("SCP COMMAND "+"scp "+rFile+"*.csv" +" [email protected]"+host+":"+lFile);
System.out.println("Sending complete...");
} catch (Exception ex) {
ex.printStackTrace();
}
đầu ra là ...
<ERROR>
/opt/jrms/rmsweb/transfer/cn00/outgoing/*.csv: No such file or directory
</ERROR>
Process exitValue: 1
....1
SCP COMMAND scp /opt/jrms/rmsweb/transfer/cn00/outgoing/*.csv [email protected]:/opt/jrms/transfer/incoming/
nhưng khi tôi chạy lệnh trong terminal trên máy cục bộ, nó hoạt động tốt và khi tôi chạy ll các tập tin đang có
-rwxr-xr-x 1 Freddie Freddie 140 tháng tư 22 09:13 gc00cn00150420092629.csv *
-rwxr-xr-x 1 Freddie Freddie 105 ngày 22 tháng 4 09:13 gc00cn00150420122656.csv *
Bất kỳ sự giúp đỡ xin vui lòng
điều kỳ lạ là sử dụng cùng một lệnh, sao chép tệp từ xa sang máy cục bộ của tôi * .csv hoạt động tốt, tuy nhiên, bằng cách sử dụng * .csv từ Cục bộ đến từ xa, đó là khi sự cố xảy ra. Ant ý tưởng? Cảm ơn –
Đó là vì scp sẽ giải thích lệnh đó ở máy chủ từ xa (và có thể trong bash), và danh sách các tệp sẽ được mở rộng trên máy chủ đó, chứ không phải cục bộ. Nhưng khi bạn thử địa phương để trao đổi tập tin từ xa, không có bash để mở rộng nó. – Mehraban
cảm ơn bạn đã trả lời nhanh chóng, sẽ thử. –