Upload files simplify and README file update

This commit is contained in:
rasta5man 2025-08-07 15:52:03 +02:00
parent 7f5697b2a1
commit a9b06d3fb3
4 changed files with 119 additions and 120 deletions

View file

@ -9,50 +9,45 @@ public class BuildServerArray {
private ArrayList<Server> allServers = new ArrayList<>();
private HashMap<String,String> 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,12 +73,10 @@ 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");
//PASSWORDS-------------------------------------------------
rvoPasswords.put("10.0.0.5", "admin");
rvoPasswords.put("10.0.0.38", "unipi.technology");

View file

@ -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";
}
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... ");

17
README
View file

@ -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":
<version>0.2.26</version>
</dependency>
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.

View file

@ -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<Server> allServers;
public static void main(String[] args) throws JSchException {
allServers = new BuildServerArray().getAllServers();