Maven Dependency
print 'hello w<!-- www.jcraft.com/jsch/ -->
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.53</version>
</dependency>orld!'
FileCopierOverNetwork example class
package sawalha.poc.sch.trans;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
import com.jcraft.jsch.SftpProgressMonitor;
public class FileCopierOverNetwork {
static Logger log = LogManager.getLogger(FileCopierOverNetwork.class.getName());
final static SftpProgressMonitor monitor = new SftpProgressMonitor() {
public void init(final int op, final String source, final String target, final long max) {
log.info("sftp start uploading file from:" + source + " to:" + target);
}
public boolean count(final long count) {
log.debug("sftp sending bytes: " + count);
return true;
}
public void end() {
log.info("sftp uploading is done.");
}
};
public static void main(String args[]) {
String hostname = "10.100.102.37";
String username = "thin";
String password = "thin123";
String copyWinFrom = createTestFile("fromWindows.del").getAbsolutePath();
// String copyWinFrom = "d:/fromWindows.del";
String copyWinTo = "/home/thin/ibrahim-scripts/fromWindows.del";
String copyLinuxFrom = "/home/thin/ibrahim-scripts/fromLinux.del";
String copyLinuxTo = "fromLinux.del";
try {
putFile(hostname, username, password, copyWinFrom, copyWinTo);
getFile(hostname, username, password, copyLinuxFrom, copyLinuxTo);
} catch (JSchException e1) {
e1.printStackTrace();
} catch (SftpException e1) {
e1.printStackTrace();
}
log.info("Done !!");
}
public static void putFile(String hostname, String username, String password, String copyFrom, String copyTo)
throws JSchException, SftpException {
log.info("Initiate sending file to Linux Server...");
JSch jsch = new JSch();
Session session = null;
log.info("Trying to connect.....");
session = jsch.getSession(username, hostname, 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(password);
session.connect();
log.info("is server connected? " + session.isConnected());
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
log.info("Server's home directory: " + sftpChannel.getHome());
try {
sftpChannel.put(copyFrom, copyTo, monitor, ChannelSftp.OVERWRITE);
} catch (SftpException e) {
log.error("file was not found: " + copyFrom);
}
sftpChannel.exit();
session.disconnect();
log.info("Finished sending file to Linux Server...");
}
public static void getFile(String hostname, String username, String password, String copyFrom, String copyTo)
throws JSchException {
log.info("Initiate getting file from Linux Server...");
JSch jsch = new JSch();
Session session = null;
log.info("Trying to connect.....");
session = jsch.getSession(username, hostname, 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(password);
session.connect();
log.info("is server connected? " + session.isConnected());
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
try {
log.info(sftpChannel.getHome());
} catch (SftpException e1) {
e1.printStackTrace();
}
try {
sftpChannel.get(copyFrom, copyTo, monitor, ChannelSftp.OVERWRITE);
} catch (SftpException e) {
log.error("file was not found: " + copyFrom);
}
sftpChannel.exit();
session.disconnect();
log.info("Finished getting file from Linux Server...");
}
public static File createTestFile(String fileName) {
File file = new File(fileName);
if (file.exists()) {
return file;
}
try {
FileWriter fileWriter = new FileWriter(file);
fileWriter.write("This is ");
fileWriter.write("a test");
fileWriter.write("\n");
fileWriter.write("Ibrahim Sawalha.");
fileWriter.flush();
fileWriter.close();
return file;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
No comments:
Post a Comment