Questa è una parte del mio codice per copiare i file da locale a un computer remotoJava runtime con exec comando 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();
}
l'uscita è ...
<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/
ma quando ho eseguito il comando nel terminale sulla macchina locale, funziona benissimo e quando corro ll i file sono lì
-rwxr-xr-x 1 freddie freddie 140 aprile 22 09:13 gc00cn00150420092629.csv *
-rwxr-xr-x 1 freddie freddie 105 22 Apr 09:13 gc00cn00150420122656.csv *
Qualsiasi aiuto per favore
la cosa strana sta usando lo stesso comando, copiando i file dal remoto al mio computer locale * .csv funziona bene, tuttavia, usando * .csv da Local a remote, questo è il momento in cui si verifica il problema. Idee di formiche? grazie –
È perché scp interpreterà quel comando sul server remoto (e probabilmente in una bash), e l'elenco dei file verrà espanso su quell'host, non localmente. Ma quando si prova lo scambio di file locale a quello remoto, non vi è alcun motivo per espanderlo. – Mehraban
grazie per la pronta risposta, ci proveremo. –