diff --git a/BuildServerArray.java b/BuildServerArray.java index d6da520..9257751 100644 --- a/BuildServerArray.java +++ b/BuildServerArray.java @@ -7,61 +7,146 @@ public class BuildServerArray { private HashMap servers = new HashMap<>(); private ArrayList allServers = new ArrayList<>(); + private HashMap rvoPasswords = new HashMap<>(); + + + + public BuildServerArray() { - // ALL SENICA rvo -// servers.put("10.0.0.130","unipi"); - servers.put("10.0.0.119","unipi"); - servers.put("10.0.0.136","unipi"); - servers.put("10.0.0.112","unipi"); -// servers.put("10.0.0.138","unipi"); - + //TODO +// servers.put("10.0.0.107","unipi"); // servers.put("10.0.0.123","unipi"); -// servers.put("10.0.0.124","unipi"); +// servers.put("10.0.0.129","unipi"); +// servers.put("10.0.0.119","unipi"); // servers.put("10.0.0.131","unipi"); +// servers.put("10.0.0.118","unipi"); +// servers.put("10.0.0.137","unipi"); +// servers.put("10.0.0.130","unipi"); +// servers.put("10.0.0.110","unipi"); +// servers.put("10.0.0.138","unipi"); +// servers.put("10.0.0.136","unipi"); +// servers.put("10.0.0.112","unipi"); +// servers.put("10.0.0.141","unipi"); +// servers.put("10.0.0.140","unipi"); +// servers.put("10.0.0.133","unipi"); +// servers.put("10.0.0.124","unipi"); // servers.put("10.0.0.109","unipi"); // servers.put("10.0.0.128","unipi"); - -// servers.put("10.0.0.110","unipi"); -// servers.put("10.0.0.127","unipi"); -// servers.put("10.0.0.129","unipi"); // servers.put("10.0.0.111","unipi"); -// servers.put("10.0.0.122","unipi"); -// servers.put("10.0.0.132","unipi"); // servers.put("10.0.0.117","unipi"); -// servers.put("10.0.0.118","unipi"); // servers.put("10.0.0.120","unipi"); -// servers.put("10.0.0.133","unipi"); // servers.put("10.0.0.134","unipi"); // servers.put("10.0.0.135","unipi"); -// servers.put("10.0.0.107","unipi"); // servers.put("10.0.0.139","unipi"); -// servers.put("10.0.0.137","unipi"); -// servers.put("10.0.0.140","unipi"); -// servers.put("10.0.0.141","unipi"); +// servers.put("10.0.0.122","unipi"); +// servers.put("10.0.0.132","unipi"); - // 24/7 + // 24/7 + //TODO + +// servers.put("10.0.0.116","unipi"); +// servers.put("10.0.0.114","unipi"); // servers.put("10.0.0.115","unipi"); - servers.put("10.0.0.114","unipi"); // servers.put("10.0.0.126","unipi"); - // servers.put("10.0.0.113","unipi"); // servers.put("10.0.0.121","unipi"); -// servers.put("10.0.0.116","unipi"); +// servers.put("10.0.0.127","unipi"); + + // kovalov +// servers.put("10.0.0.2", "lm"); +// servers.put("10.0.0.4", "lm"); + + // kyjov +// servers.put("10.0.0.27", "lm"); +// servers.put("10.0.0.29", "lm"); +// servers.put("10.0.0.31", "lm"); +// servers.put("10.0.0.32", "lm"); +// servers.put("10.0.0.60", "lm"); +// servers.put("10.0.0.61", "lm"); +// servers.put("10.0.0.102","unipi"); +// servers.put("10.0.0.103","unipi"); + + // breclav +// servers.put("10.0.0.23", "lm"); +// servers.put("10.0.0.33", "lm"); + + //showroom +// servers.put("10.0.0.26", "lm"); + + //trebic +// servers.put("10.0.0.6", "lm"); + + + + //test -// servers.put("10.0.0.38","unipi"); -// servers.put("10.0.0.5","lm"); +// servers.put("10.0.0.38","unipi"); + servers.put("10.0.0.5","lm"); + + + //PASSWORDS------------------------------------------------- + rvoPasswords.put("10.0.0.5", "admin"); + rvoPasswords.put("10.0.0.38", "unipi.technology"); + + rvoPasswords.put("10.0.0.2","2b2CdbTQ8xma"); + rvoPasswords.put("10.0.0.4","nN7BZ7GFn6KD"); + rvoPasswords.put("10.0.0.60","d7hAYkrpFJdK"); + rvoPasswords.put("10.0.0.29","4cDYsSYTrjt6"); + rvoPasswords.put("10.0.0.31","aFQQPGhutfY9"); + rvoPasswords.put("10.0.0.27","zpF5bB7szsRS"); + rvoPasswords.put("10.0.0.32","wqwWBmwmFvR9"); + rvoPasswords.put("10.0.0.61","PaXkd4S3AZKy"); + rvoPasswords.put("10.0.0.102","MkqTLBnfe3ad"); + rvoPasswords.put("10.0.0.103","szT3LFCYYhrR"); + rvoPasswords.put("10.0.0.23","BUZN4RdyMp3W"); + rvoPasswords.put("10.0.0.33","vv6PuXCqRans"); + rvoPasswords.put("10.0.0.6","3rceA9mt59mG"); + + rvoPasswords.put("10.0.0.141", "mppsdcMGvH59"); + rvoPasswords.put("10.0.0.130", "Ybucc2ug3WAU"); + rvoPasswords.put("10.0.0.119", "BKUdq6eLte3H"); + rvoPasswords.put("10.0.0.136", "vfa3VGcZtbyS"); + rvoPasswords.put("10.0.0.126", "vYKD4GAntYKr"); + rvoPasswords.put("10.0.0.112", "Cf544STxcCvd"); + rvoPasswords.put("10.0.0.123", "ZTaHFw9mMUEP"); + rvoPasswords.put("10.0.0.124", "tu7yJGEpsv3Y"); + rvoPasswords.put("10.0.0.114", "sVyU7c6kz42H"); + rvoPasswords.put("10.0.0.131", "UZqgXWtQ2Hcs"); + rvoPasswords.put("10.0.0.113", "JCmVs7fDuEpU"); + rvoPasswords.put("10.0.0.115", "dQHFm5zrsaXz"); + rvoPasswords.put("10.0.0.109", "uG25bgPKanT7"); + rvoPasswords.put("10.0.0.110", "zAnHfcRGy2WZ"); + rvoPasswords.put("10.0.0.121", "PecL42DGVPNY"); + rvoPasswords.put("10.0.0.127", "XugRaKPYfX6q"); + rvoPasswords.put("10.0.0.128", "2tPaBYu4nRWA"); + rvoPasswords.put("10.0.0.129", "fzY3NM6zYNxN"); + rvoPasswords.put("10.0.0.138", "pQvaeGDBf8nJ"); + rvoPasswords.put("10.0.0.111", "XsNdUU9KXKf7"); + rvoPasswords.put("10.0.0.122", "5X5yUx3GXGKC"); + rvoPasswords.put("10.0.0.132", "nmZqdWU9Hwtk"); + rvoPasswords.put("10.0.0.117", "57nDnNtrgGac"); + rvoPasswords.put("10.0.0.118", "9gQzJGdMWryK"); + rvoPasswords.put("10.0.0.116", "GW3b4Tt4r87X"); + rvoPasswords.put("10.0.0.120", "wSg4SFV9dPLJ"); + rvoPasswords.put("10.0.0.133", "nMrAmVFM6JKh"); + rvoPasswords.put("10.0.0.134", "PbKcz829CA5D"); + rvoPasswords.put("10.0.0.135", "FZ9pytsxeS8Y"); + rvoPasswords.put("10.0.0.139", "LdDgSE2jVN2B"); + rvoPasswords.put("10.0.0.107", "fCKRYdGB2VSu"); + rvoPasswords.put("10.0.0.137", "zRkVARmNc2Ja"); + rvoPasswords.put("10.0.0.140", "urQPCmCDGeG8"); for (String ip : servers.keySet()) { if(servers.get(ip).equals("unipi")) { - allServers.add(new ServerBuilder().host(ip).buildServer()); + allServers.add(new ServerBuilder().host(ip).password(rvoPasswords.get(ip)).buildServer()); } else { - allServers.add(new ServerBuilder().host(ip).username("root").password("admin").path("/root").buildServer()); + allServers.add(new ServerBuilder().host(ip).username("root").password(rvoPasswords.get(ip)).path("/root").buildServer()); } } } diff --git a/CommandExecutor.java b/CommandExecutor.java index c104d49..df21c22 100644 --- a/CommandExecutor.java +++ b/CommandExecutor.java @@ -8,23 +8,40 @@ import java.io.PrintStream; import java.util.ArrayList; import java.util.Properties; +import java.util.concurrent.TimeUnit; + public class CommandExecutor { private Session session; - private final String fileToRead = "monitor.txt"; private String commandsToExecute = ""; - private ArrayList allServers = new ArrayList<>(); + private int timeBetweenCommands; + private final ArrayList allServers; public CommandExecutor() { + allServers = new BuildServerArray().getAllServers(); -// commandsToExecute = "tail -n 20 flowserver/" + fileToRead; -// commandsToExecute = "ls -l flowserver/"; + timeBetweenCommands = 1; // in seconds (if rebooting, put cca 20 seconds between reboots) +// commandsToExecute = "tail -n 3 flowserver/monitor.txt"; // commandsToExecute = "sudo journalctl --vacuum-size=1M"; -// commandsToExecute = "sudo rm flowserver/monitor.1.txt.gz"; - commandsToExecute = "sudo service nodejs restart"; -// commandsToExecute = "sudo service nodejs stop"; +// commandsToExecute = "sudo service nodejs restart"; + commandsToExecute = "sudo service nodejs start"; +// commandsToExecute = "rm -rf /home/unipi/flowserver/flow"; +// commandsToExecute = "mkdir -p /home/unipi/flowserver/flow/helper"; +// commandsToExecute = "sudo reboot"; + commandsToExecute = "python /root/flowserver/addSwitch.py"; + +// commandsToExecute = "ls -l /home/unipi/flowserver/databases"; +// commandsToExecute = "ls -l /root/flowserver/databases"; +// commandsToExecute = "rm /home/unipi/flowserver/databases/1.tbdata.nosql /home/unipi/flowserver/databases/2.tbdata.nosql /home/unipi/flowserver/databases/3.tbdata.nosql /home/unipi/flowserver/databases/4.tbdata.nosql /home/unipi/flowserver/databases/5.tbdata.nosql /home/unipi/flowserver/databases/6.tbdata.nosql /home/unipi/flowserver/databases/7.tbdata.nosql /home/unipi/flowserver/databases/8.tbdata.nosql /home/unipi/flowserver/databases/9.tbdata.nosql /home/unipi/flowserver/databases/10.tbdata.nosql"; +// commandsToExecute = "head -n 1 /home/unipi/flowserver/databases/nodes_original/nodes_original.table"; +// commandsToExecute = "sudo sh -c 'chmod 777 /etc/owfs.conf; chmod 777 /etc/fuse.conf; chmod 777 /etc/evok.conf; chmod 777 /lib/systemd/system/owfs.service; mkdir /mnt/1wire'"; + +// commandsToExecute = "sudo sh -c 'service owfs stop; service evok stop; service nodejs stop; chmod 777 /etc/owfs.conf; chmod 777 /etc/fuse.conf; chmod 777 /etc/evok.conf; chmod 777 /lib/systemd/system/owfs.service; mkdir /mnt/1wire'"; +// commandsToExecute = "sudo sh -c 'chmod 644 /etc/owfs.conf; chmod 644 /etc/fuse.conf; chmod 644 /etc/evok.conf; chmod 644 /lib/systemd/system/owfs.service'"; +// commandsToExecute = "python /home/unipi/flowserver/cloud_topic.py && rm /home/unipi/flowserver/databases/status.table"; } + public void open(String username, String hostname, String password) throws JSchException { JSch jSch = new JSch(); @@ -95,16 +112,13 @@ public class CommandExecutor { } - public static void main(String[] args) { + public static void main(String[] args) throws InterruptedException { CommandExecutor ssh = new CommandExecutor(); for (Server s : ssh.allServers) { try { ssh.open(s.getUsername(), s.getHost(), s.getPassword()); -// String ret = ssh.runCommand("tail -n 20 " + s.getPath() + "/flowserver/" + ssh.fileToRead); -// String ret = ssh.runCommand("ls -la /home/unipi/flowserver/flow"); -// String ret = ssh.runCommand("sudo service nodejs restart"); String ret = ssh.runCommand(ssh.commandsToExecute); System.out.println(ret); ssh.close(); @@ -112,6 +126,8 @@ public class CommandExecutor { System.out.println(e); //throw new RuntimeException(e); } + + TimeUnit.SECONDS.sleep(ssh.timeBetweenCommands); } } } diff --git a/UploadFiles.java b/UploadFiles.java index 7e0a404..80e300a 100644 --- a/UploadFiles.java +++ b/UploadFiles.java @@ -3,6 +3,7 @@ package handleSsh; import com.jcraft.jsch.*; import java.util.ArrayList; +import java.util.HashMap; public class UploadFiles { @@ -12,40 +13,62 @@ public class UploadFiles { 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" + // "/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/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/addSwitch.py", }; private static String buildDestinationDirectory(String fileToUpload) { - int index = fileToUpload.indexOf("/flowserver"); - return fileToUpload.substring(index + 11); + int index = fileToUpload.indexOf("/bitbucket-repositories"); + //int index = fileToUpload.indexOf("/flowserver"); + //return fileToUpload.substring(index + 11); + return fileToUpload.substring(index + 42); } private static ArrayList allServers; @@ -87,6 +110,9 @@ public class UploadFiles { 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); } @@ -103,3 +129,4 @@ public class UploadFiles { } } } +