Scp

Pessoal, boa tarde!

Preciso implementar um esquema para copiar arquivos de um servidor para uma pasta local sem intervenções de usuarios, como são arquivos grandes e o FTP da muitos problemas me mandaram fazer em SCP, alguem pode me dar uma direção de onde começar, o que é necessario.

Obrigado,

Boa tarde Danilo…

Cara, no google…‘java scp’…trouxe um monte de resultados…
o que eu achei mais interessante e completo foi esse do Koders…
dá uma olhada:

http://www.koders.com/java/fidEEC07F855084DD01762BFD8A21A8D613FA0AC0D4.aspx

t+

Cara ja fiz algo muito parecido,de uma olhada nesse API(commons-net-1.4.1.jar) ok.Segue um exemplo espero que lhe ajude:

[code]
public class FtpTeste {
public static void main(String[] args) {
FTPClient ftp = new FTPClient();
boolean saida =false;
try {
ftp = new FTPClient();
ftp.connect(“10.1.1.1”, 21);
ftp.login(“anonymous”, “anonymous”);
int reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
System.out.println(“Conexao recusada pelo servidor”);
ftp.disconnect();
}

		if (ftp.isConnected()) {
			System.out.println("Usuario conectado no servidor FTP");
			/* Porta do Servidos */
					
			/* Seta para receber dados binarios */
			ftp.setFileType(FTP.BINARY_FILE_TYPE);
			
			/* Escolhe o diretorio do Servidor */
			ftp.changeWorkingDirectory("/pub/Planta_Externa");
			
			/*Mostra todos os arquivos do diretorio atual*/
			String[] arquivos = ftp.listNames();
			
            //Mostra os Arquivos da Pasta
			for (int i = 0; i < arquivos.length; i++) {
				System.out.println(arquivos[i]);
			}				
			
			/*Seta o nome do arquivo temp*/
			String strArquivo = "ARQUIVO.XLS";
			
			/*Seta o local para guardar o arquivo temp*/
			String strFilePath = "c:\temp"+ "\" + strArquivo ;			
			
			/*Instancia um file*/
			File folderDest = new File(strFilePath);
			
			/*Instancia o arquivo de saida*/
			OutputStream output = new FileOutputStream( folderDest);   
			saida =	ftp.retrieveFile(strArquivo,output);
			output.close();		
       }
		ftp.disconnect();
	   if(saida){
	      System.out.println("SUCESSO");
	    }
	} 
	
	catch (Exception e) {
		System.out.println("Ocorreu um erro: " + e);
		System.exit(1);
	}

}

}
[/code][/code]

Cara ja fiz algo muito parecido,de uma olhada nesse API(commons-net-1.4.1.jar) ok.Segue um exemplo espero que lhe ajude:

public class FtpTeste {
	public static void main(String[] args) {
		FTPClient ftp = new FTPClient();
		boolean saida =false;
		try {
			ftp = new FTPClient();
			ftp.connect("10.1.1.1", 21);
			ftp.login("anonymous", "anonymous");
			int reply = ftp.getReplyCode();
			if (!FTPReply.isPositiveCompletion(reply)) {
				System.out.println("Conexao recusada pelo servidor");
				ftp.disconnect();
			}

			if (ftp.isConnected()) {
				System.out.println("Usuario conectado no servidor FTP");
				/* Porta do Servidos */
						
				/* Seta para receber dados binarios */
				ftp.setFileType(FTP.BINARY_FILE_TYPE);
				
				/* Escolhe o diretorio do Servidor */
				ftp.changeWorkingDirectory("/pub/Planta_Externa");
				
				/*Mostra todos os arquivos do diretorio atual*/
				String[] arquivos = ftp.listNames();
				
                //Mostra os Arquivos da Pasta
				for (int i = 0; i < arquivos.length; i++) {
					System.out.println(arquivos[i]);
				}				
				
				/*Seta o nome do arquivo temp*/
				String strArquivo = "ARQUIVO.XLS";
				
				/*Seta o local para guardar o arquivo temp*/
				String strFilePath = "c:\temp"+ "\" + strArquivo ;			
				
				/*Instancia um file*/
				File folderDest = new File(strFilePath);
				
				/*Instancia o arquivo de saida*/
				OutputStream output = new FileOutputStream( folderDest);   
				saida =	ftp.retrieveFile(strArquivo,output);
				output.close();		
           }
			ftp.disconnect();
		   if(saida){
		      System.out.println("SUCESSO");
		    }
		} 
		
		catch (Exception e) {
			System.out.println("Ocorreu um erro: " + e);
			System.exit(1);
		}

	}
}