From a9b06d3fb367567187848d04ec5ab196e578ae5e Mon Sep 17 00:00:00 2001 From: rasta5man Date: Thu, 7 Aug 2025 15:52:03 +0200 Subject: [PATCH] Upload files simplify and README file update --- BuildServerArray.java | 87 ++++++++++++++++----------------- CommandExecutor.java | 26 ++++------ README | 17 ++++++- UploadFiles.java | 109 +++++++++++++++++++++--------------------- 4 files changed, 119 insertions(+), 120 deletions(-) diff --git a/BuildServerArray.java b/BuildServerArray.java index 3db5259..1e95ddc 100644 --- a/BuildServerArray.java +++ b/BuildServerArray.java @@ -9,50 +9,45 @@ public class BuildServerArray { private ArrayList allServers = new ArrayList<>(); private HashMap rvoPasswords = new HashMap<>(); - - - - public BuildServerArray() { //TODO -// servers.put("10.0.0.107","unipi"); -// servers.put("10.0.0.123","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.107","unipi"); + servers.put("10.0.0.123","unipi"); + servers.put("10.0.0.129","unipi"); + servers.put("10.0.0.119","unipi"); + servers.put("10.0.0.134","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.111","unipi"); -// servers.put("10.0.0.117","unipi"); -// servers.put("10.0.0.120","unipi"); -// servers.put("10.0.0.134","unipi"); -// servers.put("10.0.0.135","unipi"); -// servers.put("10.0.0.139","unipi"); -// servers.put("10.0.0.122","unipi"); -// servers.put("10.0.0.132","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.111","unipi"); + servers.put("10.0.0.117","unipi"); + servers.put("10.0.0.120","unipi"); + servers.put("10.0.0.135","unipi"); + servers.put("10.0.0.139","unipi"); + servers.put("10.0.0.122","unipi"); + servers.put("10.0.0.132","unipi"); - // 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.126","unipi"); -// servers.put("10.0.0.113","unipi"); -// servers.put("10.0.0.121","unipi"); -// servers.put("10.0.0.127","unipi"); +// 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.126","unipi"); + servers.put("10.0.0.113","unipi"); + servers.put("10.0.0.121","unipi"); + servers.put("10.0.0.127","unipi"); // kovalov // servers.put("10.0.0.2", "lm"); @@ -64,7 +59,7 @@ public class BuildServerArray { // 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.61", "lm"); // servers.put("10.0.0.102","unipi"); // servers.put("10.0.0.103","unipi"); @@ -78,15 +73,13 @@ public class BuildServerArray { //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"); + //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"); diff --git a/CommandExecutor.java b/CommandExecutor.java index a49d3d1..5dbd790 100644 --- a/CommandExecutor.java +++ b/CommandExecutor.java @@ -20,29 +20,18 @@ public class CommandExecutor { public CommandExecutor() { allServers = new BuildServerArray().getAllServers(); - timeBetweenCommands = 1; // in seconds (if rebooting, put cca 20 seconds between reboots) -// commandsToExecute = "sudo journalctl --vacuum-size=1M"; -// commandsToExecute = "sudo service nodejs restart"; -// commandsToExecute = "rm -rf /home/unipi/flowserver/flow"; -// commandsToExecute = "mkdir -p /home/unipi/flowserver/flow/helper"; + timeBetweenCommands = 30; // in seconds (if rebooting, put cca 20 seconds between reboots) + commandsToExecute = "sudo journalctl --vacuum-size=1M"; + commandsToExecute = "sudo service nodejs restart"; commandsToExecute = "python /root/flowserver/addSwitch.py"; commandsToExecute = "python3 /home/unipi/flowserver/addSwitch.py"; commandsToExecute = "sudo service nodejs stop"; - commandsToExecute = "tail -n 3 flowserver/monitor.txt"; -// commandsToExecute = "sudo reboot"; - + commandsToExecute = "tail -n 10 flowserver/monitor.txt"; + commandsToExecute = "sudo reboot"; // 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"; +// commandsToExecute = "ls -l /root/flowserver/databases"; } - public void open(String username, String hostname, String password) throws JSchException { JSch jSch = new JSch(); @@ -53,8 +42,9 @@ public class CommandExecutor { // Properties config = new Properties(); //config.put("StrictHostKeyChecking", "no"); // not recommended //session.setConfig("StrictHostKeyChecking", "no"); // not recommended - //session.setConfig("PreferredAuthentications", "password"); +// session.setConfig("PreferredAuthentications", "password"); //session.setConfig(config); + //session.setConfig("PreferredAuthentications", "password,keyboard-interactive"); session.setPassword(password); System.out.println("Connecting SSH to " + hostname + " - Please wait for few seconds... "); diff --git a/README b/README index 2f9a994..3d435c0 100644 --- a/README +++ b/README @@ -1,3 +1,16 @@ +POUZITIE: + +Pocitame iba s dvomi pripadmi: bud je zariadenie LM alebo unipi, to znamena, bud je user "root" alebo "unipi". + +1. v "buildServerArray.java" si doplnte zariadenia, na ktore sa chcete cez ssh prihlasit: "server.put(ip, username)" +dole v subore takisto doplnte prihlasovacie hesla pre jednotlive zariadenia: "rvoPassword.put(ip, heslo)" +2. ked chcete na zariadeniach spustit nejaky terminal prikaz, v subore "CommandExecutor.java" ho zadefinujte a subor spustite. +tak isto nezabudnite nastavit cas medzi jednotlivymi pripajaniami na zariadenia (v pripade restartu flowov cakajte minimalne 30 sekund, aby sa nezahltil cloud datami po spusteni flowov) +3. ked chcete hromadny upload suborov, pouzite subor "UploadFiles.java". V prvom rade nastavte "BASIC_PATH" - adresar v ktorom su subory na upload. +DOLEZITE: adresar v ktorom su subory sa musi volat na konci "flowserver" a koncit lomitkom. (moze mat predtym text, ale koniec musi byt flowserver - napr "city-flowserver/" +Ak chcete menit ine subory na unipi alebo lm, ako flowserver, musite nastavit "directoryToUpload" + + 5.5.2025 -> Po zmene hesiel na unipi a lm sa script nechcel na unipi prihlasit! Potreba pridat do MAVEN dependancy namiesto standardnej "jsch": @@ -8,4 +21,6 @@ Potreba pridat do MAVEN dependancy namiesto standardnej "jsch": 0.2.26 -Po novom treba pre unipi pouzit jSch.addIdentity("ssh private key"), pre lm staci tento riadok vykomentovat a prihlasuje sa heslom +Po novom treba pre unipi pouzit jSch.addIdentity("ssh private key"), pre lm staci tento riadok vykomentovat a prihlasuje sa heslom. + + diff --git a/UploadFiles.java b/UploadFiles.java index 9605fb9..f349144 100644 --- a/UploadFiles.java +++ b/UploadFiles.java @@ -3,78 +3,79 @@ package handleSsh; import com.jcraft.jsch.*; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; public class UploadFiles { // READ - // files to upload should always be in "flowserver" directory !!! + // files to upload should always be in "flowserver" directory !!! (it can be "something-flowserver" as well) // RENAME IT if it is not + // Change BASIC_PATH to your needs!!! + + private static final String BASIC_PATH= "/home/rasta5man/dev/oms/bitbucket-repositories/citysys-flowserver/"; 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", + BASIC_PATH + "flow/cloudmqttconnect.js", +// BASIC_PATH + "flow/cloudmqttconnect.js", + BASIC_PATH + "flow/cmd_manager.js", +// BASIC_PATH + "flow/code.js", +// BASIC_PATH + "flow/comment.js", +// BASIC_PATH + "flow/count.js", +// BASIC_PATH + "flow/db_connector.js", + BASIC_PATH + "flow/db_init.js", +// BASIC_PATH + "flow/debug.js", +// BASIC_PATH + "flow/designer.json", +// BASIC_PATH + "flow/dido_controller.js", +// BASIC_PATH + "flow/httprequest.js", +// BASIC_PATH + "flow/httpresponse.js", +// BASIC_PATH + "flow/httproute.js", +// BASIC_PATH + "flow/infosender.js", +// BASIC_PATH + "flow/modbus_reader.js", +// BASIC_PATH + "flow/monitorconsumption.js", +// BASIC_PATH + "flow/monitordisk.js", +// BASIC_PATH + "flow/monitormemory.js", +// BASIC_PATH + "flow/nodesdb_changecheck.js", +// BASIC_PATH + "flow/show_dbdata.js", +// BASIC_PATH + "flow/slack_filter.js", +// BASIC_PATH + "flow/thermometer.js", +// BASIC_PATH + "flow/trigger.js", +// BASIC_PATH + "flow/virtualwirein.js", +// BASIC_PATH + "flow/virtualwireout.js", +// BASIC_PATH + "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", -////// +// BASIC_PATH + "config", +// BASIC_PATH + "addSwitch.py", +// BASIC_PATH + "cloud_topic.py", +// BASIC_PATH + "createNodeDbOriginal.js", +// BASIC_PATH + "createNode.py", // - // "/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", +// BASIC_PATH + "flow/helper/DataToTbHandler.js", +// BASIC_PATH + "flow/helper/db_helper.js", +// BASIC_PATH + "flow/helper/ErrorToServiceHandler.js", +// BASIC_PATH + "flow/helper/logger.js", +// BASIC_PATH + "flow/helper/md5.js", +// BASIC_PATH + "flow/helper/notification_reporter.js", +// BASIC_PATH + "flow/helper/register.js", +// BASIC_PATH + "flow/helper/serialport_helper.js", +// BASIC_PATH + "flow/helper/suncalc.js", + BASIC_PATH + "flow/helper/utils.js", +// +// BASIC_PATH + "databases/notifications.table", +// BASIC_PATH + "databases/total_energy.js", +// BASIC_PATH + "databases/tbdata.nosql", +// BASIC_PATH + "databases/modbus_config.js", +// BASIC_PATH + "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); + int index = fileToUpload.indexOf("flowserver/"); + return fileToUpload.substring(index + 10); } private static ArrayList allServers; - public static void main(String[] args) throws JSchException { allServers = new BuildServerArray().getAllServers();