package handleSsh; import com.jcraft.jsch.*; import java.util.ArrayList; public class UploadFiles { // READ // files to upload should always be in "flowserver" directory !!! // RENAME IT if it is not private static final String[] filesToUpload = { "/home/rasta5man/dev/oms/flowserver/flow/cloudmqttconnect.js", "/home/rasta5man/dev/oms/flowserver/flow/cmd_manager.js", "/home/rasta5man/dev/oms/flowserver/flow/db_init.js", "/home/rasta5man/dev/oms/flowserver/flow/designer.json", "/home/rasta5man/dev/oms/flowserver/flow/dido_controller.js", "/home/rasta5man/dev/oms/flowserver/flow/infosender.js", "/home/rasta5man/dev/oms/flowserver/flow/modbus_reader.js", "/home/rasta5man/dev/oms/flowserver/flow/show_dbdata.js", "/home/rasta5man/dev/oms/flowserver/flow/slack_filter.js", "/home/rasta5man/dev/oms/flowserver/flow/thermometer.js", "/home/rasta5man/dev/oms/flowserver/flow/wsmqttpublish.js", "/home/rasta5man/dev/oms/flowserver/config", "/home/rasta5man/dev/oms/flowserver/flow/helper/DataToTbHandler.js", "/home/rasta5man/dev/oms/flowserver/flow/helper/ErrorToServiceHandler.js", "/home/rasta5man/dev/oms/flowserver/flow/helper/logger.js", "/home/rasta5man/dev/oms/flowserver/flow/helper/notification_reporter.js", "/home/rasta5man/dev/oms/flowserver/flow/helper/serialport_helper.js", "/home/rasta5man/dev/oms/flowserver/databases/notifications.table", "/home/rasta5man/dev/oms/flowserver/databases/tbdatacloud.nosql", //"/home/rasta5man/dev/oms/flowserver/databases/modbus_config.js", //"/home/rasta5man/dev/oms/flowserver/databases/status.table" }; private static String buildDestinationDirectory(String fileToUpload) { int index = fileToUpload.indexOf("/flowserver"); return fileToUpload.substring(index + 11); } private static ArrayList allServers; public static void main(String[] args) { allServers = new BuildServerArray().getAllServers(); for (Server server : allServers) { System.out.println("Connecting to server: " + server); copyFileToServer(server); } } private static void copyFileToServer(Server server) { JSch jsch = new JSch(); Session session = null; ChannelSftp sftpChannel = null; try { session = jsch.getSession(server.getUsername(), server.getHost(), server.getPort()); session.setPassword(server.getPassword()); session.setConfig("StrictHostKeyChecking", "no"); // Avoids checking for new host keys (not recommended for production) session.connect(); sftpChannel = (ChannelSftp) session.openChannel("sftp"); sftpChannel.connect(); for (String fileToUpload : filesToUpload) { System.out.println("Uploading " + fileToUpload + " to " + server); String directoryToUpload = ""; if(server.getUsername().equals("root")) // je to LM { directoryToUpload = "/root/flowserver" + buildDestinationDirectory(fileToUpload); } else { directoryToUpload = "/home/unipi/flowserver" + buildDestinationDirectory(fileToUpload); } sftpChannel.put(fileToUpload, directoryToUpload); } } catch (JSchException | SftpException e) { System.err.println("Error connecting to " + server.getUsername() + ": " + e.getMessage()); } finally { if (sftpChannel != null) { sftpChannel.disconnect(); } if (session != null) { session.disconnect(); } } } }