135 lines
7.6 KiB
Java
135 lines
7.6 KiB
Java
package handleSsh;
|
|
|
|
import com.jcraft.jsch.*;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
|
|
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/bitbucket-repositories/citysys-flowserver/flow/cloudmqttconnect.js",
|
|
"/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/cmd_manager.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/code.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/comment.js",
|
|
// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/count.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/db_connector.js",
|
|
"/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/db_init.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/debug.js",
|
|
// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/designer.json",
|
|
"/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/dido_controller.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/httprequest.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/httpresponse.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/httproute.js",
|
|
// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/infosender.js",
|
|
// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/modbus_reader.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/monitorconsumption.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/monitordisk.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/monitormemory.js",
|
|
// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/nodesdb_changecheck.js",
|
|
// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/show_dbdata.js",
|
|
// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/slack_filter.js",
|
|
// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/thermometer.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/trigger.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/virtualwirein.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/virtualwireout.js",
|
|
// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/wsmqttpublish.js",
|
|
//
|
|
"/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/config",
|
|
"/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/addSwitch.py",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/cloud_topic.py",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/createNodeDbOriginal.js",
|
|
// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/createNode.py",
|
|
////
|
|
// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/helper/DataToTbHandler.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/helper/db_helper.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/helper/ErrorToServiceHandler.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/helper/logger.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/helper/md5.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/helper/notification_reporter.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/helper/register.js",
|
|
// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/helper/serialport_helper.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/helper/suncalc.js",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/flow/helper/utils.js",
|
|
//////
|
|
//
|
|
// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/databases/notifications.table",
|
|
// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/databases/tbdata.nosql",
|
|
//// "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/databases/modbus_config.js",
|
|
"/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/databases/accelerometer_db.js",
|
|
};
|
|
|
|
|
|
private static String buildDestinationDirectory(String fileToUpload) {
|
|
int index = fileToUpload.indexOf("/bitbucket-repositories");
|
|
//int index = fileToUpload.indexOf("/flowserver");
|
|
//return fileToUpload.substring(index + 11);
|
|
return fileToUpload.substring(index + 42);
|
|
}
|
|
|
|
private static ArrayList<Server> allServers;
|
|
|
|
|
|
public static void main(String[] args) throws JSchException {
|
|
|
|
allServers = new BuildServerArray().getAllServers();
|
|
|
|
for (Server server : allServers) {
|
|
System.out.println("Connecting to server: " + server);
|
|
copyFileToServer(server);
|
|
}
|
|
}
|
|
|
|
private static void copyFileToServer(Server server) throws JSchException {
|
|
|
|
JSch jsch = new JSch();
|
|
jsch.setKnownHosts("/home/rasta5man/.ssh/known_hosts");
|
|
jsch.addIdentity( "/home/rasta5man/.ssh/oms_key" );
|
|
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);
|
|
// directoryToUpload = "/etc" + buildDestinationDirectory(fileToUpload);
|
|
// directoryToUpload = "/lib/systemd/system" + buildDestinationDirectory(fileToUpload);
|
|
// System.out.println(directoryToUpload + 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();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|