Compare commits

..

No commits in common. "4a472139ac5f7b1db8174221d45f3b493fd09229" and "d2e69098c6cbb59e58f08c3eb3c330afa78ac903" have entirely different histories.

9 changed files with 47 additions and 78 deletions

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (server-info) (2)" project-jdk-type="Python SDK" /> <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (server-info)" project-jdk-type="Python SDK" />
</project> </project>

View File

@ -2,7 +2,7 @@
<module type="PYTHON_MODULE" version="4"> <module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager"> <component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" /> <sourceFolder url="file://$MODULE_DIR$/venv" isTestSource="false" />
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />

View File

@ -1,9 +1,8 @@
import mysql.connector.locales.eng import mysql.connector.locales.eng
import mysql.connector import mysql.connector
from sshtunnel import SSHTunnelForwarder
import os import os
import Controller.ssh_tunnel as ssh_tunnel
filename = os.path.basename(__file__)
def ping(host): def ping(host):
# Führe den Ping-Befehl aus und erfasse die Ausgabe # Führe den Ping-Befehl aus und erfasse die Ausgabe
result = os.system("ping -c 1 " + host) result = os.system("ping -c 1 " + host)
@ -13,22 +12,25 @@ def ping(host):
hostname = "forward.stines.de", 2223 hostname = "forward.stines.de", 2223
return hostname return hostname
server = SSHTunnelForwarder(
("forward.stines.de", 2223),
ssh_username="root",
ssh_password="adm.3dfx12",
remote_bind_address=('127.0.0.1', 3306)
)
def database(query,name,user): def database(query,name,user):
# server.start() server.start()
print(f"{filename}-SSH Server start Port:{ssh_tunnel.server_port()}") print(f"SSH Server start Port:{server.local_bind_port}")
mydb = mysql.connector.connect( mydb = mysql.connector.connect(
host="127.0.0.1", host="127.0.0.1",
port=ssh_tunnel.server_port(), port=server.local_bind_port,
user="root", user="root",
password="N53yBCswuawzBzS445VNAhWVMs3N59Gb9szEsrzXRBzarDqpdETpQeyt5v5CGe", password="N53yBCswuawzBzS445VNAhWVMs3N59Gb9szEsrzXRBzarDqpdETpQeyt5v5CGe",
database="" + name, database="" + name,
auth_plugin='mysql_native_password', auth_plugin='mysql_native_password',
) )
mydb.connect() mydb.connect()
print(f"{filename}-SQL Server Connect") print("SQL Server Connect")
print(f"{filename}-{query}")
cursor = mydb.cursor() cursor = mydb.cursor()
if "SELECT" in query: if "SELECT" in query:
if user: if user:
@ -36,7 +38,7 @@ def database(query,name,user):
return cursor.fetchone() return cursor.fetchone()
else: else:
cursor.execute(query, user) cursor.execute(query, user)
print(f"{filename}- Inside SELECT ALL") print("Inside SELECT ALL")
return cursor.fetchall() return cursor.fetchall()
if "SHOW" in query: if "SHOW" in query:
cursor.execute(query ) cursor.execute(query )
@ -48,9 +50,9 @@ def database(query,name,user):
cursor.execute(query) cursor.execute(query)
mydb.commit() mydb.commit()
mydb.close() mydb.close()
# server.stop() server.stop()
def get_ip(query): def get_ip(query):
print(f"{filename}-GetIP") print("GetIP")
user = "" user = ""
name = "" name = ""
return database(query, name, user) return database(query, name, user)
@ -58,19 +60,21 @@ def get_database():
name = "" name = ""
user = "" user = ""
query = 'SHOW DATABASES' query = 'SHOW DATABASES'
print(database(query,name,user))
return database(query,name,user) return database(query,name,user)
def create_database(query,name): def create_database(query,name):
try: try:
user = "" user = ""
database(query,name,user) database(query,name,user)
return ("Database Created")
except Exception as e: except Exception as e:
print(f"{filename}-Ein Fehler ist aufgetreten:", str(e)) print("Ein Fehler ist aufgetreten:", str(e))
def add_user(query,name,user): def add_user(query,name,user):
try: try:
database(query, name, user) database(query, name, user)
return print(f"{filename}-User Added") return ("User Added")
except Exception as e: except Exception as e:
print(f"{filename}-Ein Fehler ist aufgetreten:", str(e)) print("Ein Fehler ist aufgetreten:", str(e))
def get_user(query,name,user): def get_user(query,name,user):
return database(query,name,user) return database(query,name,user)
@ -78,5 +82,5 @@ def get_user(query,name,user):
def get_cpu(query,name,cpu): def get_cpu(query,name,cpu):
return database(query,name,cpu) return database(query,name,cpu)
def update_cpu(query,name): def update_cpu(query,name,cpu):
database(query,name) return database(query,name,cpu)

View File

@ -1,16 +1,14 @@
import subprocess import subprocess
from datetime import datetime from datetime import datetime
from Controller import mysql_connect from Controller import mysql_connect
import os
filename = os.path.basename(__file__)
def rds (ip,name): def rds (ip,name):
print(f"INSIDE-{filename}")
powershell_command = "quser | Select-String -Pattern 'Aktiv'" powershell_command = "quser | Select-String -Pattern 'Aktiv'"
result = subprocess.run(["powershell", "-Command", powershell_command], capture_output=True, text=True) result = subprocess.run(["powershell", "-Command", powershell_command], capture_output=True, text=True)
fieldname = ["Benutzername","Anmeldezeit","Anmeldedatum"] fieldname = ["Benutzername","Anmeldezeit","Anmeldedatum"]
# Die Ausgabe des Befehls aufteilen und die Benutzernamen und Anmeldezeiten extrahieren # Die Ausgabe des Befehls aufteilen und die Benutzernamen und Anmeldezeiten extrahieren
output_lines = result.stdout.strip().split('\n')[1:] output_lines = result.stdout.strip().split('\n')[1:]
print(f"{filename}-{output_lines}")
logged_in_users = [] logged_in_users = []
# Tabelle erstellen, falls sie noch nicht existiert # Tabelle erstellen, falls sie noch nicht existiert
@ -22,7 +20,6 @@ def rds (ip,name):
create_table_query += " ROW_FORMAT=DYNAMIC" create_table_query += " ROW_FORMAT=DYNAMIC"
user = "" user = ""
mysql_connect.create_database(create_table_query, name) mysql_connect.create_database(create_table_query, name)
print(f"{filename}-{create_table_query}")
for line in output_lines: for line in output_lines:
parts = line.split() parts = line.split()
@ -30,7 +27,6 @@ def rds (ip,name):
login_time = parts[5] login_time = parts[5]
login_date = parts[6] login_date = parts[6]
logged_in_users.append((username,login_date, login_time)) logged_in_users.append((username,login_date, login_time))
print(f"{filename}-{logged_in_users}")
for user in logged_in_users: for user in logged_in_users:
user = [cell if cell.strip() else "-" for cell in user] user = [cell if cell.strip() else "-" for cell in user]
@ -38,4 +34,3 @@ def rds (ip,name):
user = [unix_time] + user user = [unix_time] + user
insert_query = f"INSERT INTO `{table_name}` (importdate, `{'`, `'.join(fieldname)}`) VALUES (%s, {', '.join(['%s'] * len(fieldname))})" insert_query = f"INSERT INTO `{table_name}` (importdate, `{'`, `'.join(fieldname)}`) VALUES (%s, {', '.join(['%s'] * len(fieldname))})"
mysql_connect.add_user(insert_query, name, user) mysql_connect.add_user(insert_query, name, user)
print(f"{filename}-{insert_query}")

View File

@ -1,22 +0,0 @@
from sshtunnel import SSHTunnelForwarder
import os
filename = os.path.basename(__file__)
server = SSHTunnelForwarder(
("forward.stines.de", 2223),
ssh_username="root",
ssh_password="adm.3dfx12",
remote_bind_address=('127.0.0.1', 3306)
)
def server_start():
server.start()
return print(f"{filename}-Server started")
def server_stop():
server.stop()
return print(f"{filename}-Server stoped")
def server_port():
return server.local_bind_port

View File

@ -27,6 +27,6 @@ def get_hdd_info():
return math.ceil(total_disk_size) return math.ceil(total_disk_size)
# Informationen über die CPU # Informationen über die CPU
def set_system_info(ipadress): def set_system_info(name,ipadress):
query = f"UPDATE `Kunden-Server` SET RAM={get_ram_info()}, Prozessor={get_cpu_sql()[0]}, CPU='{get_cpu_info()}' WHERE `IP-Adresse`='{ipadress}'" query = f"UPDATE `Kunden-Server` SET RAM={get_ram_info()}, Prozessor={get_cpu_sql()[0]}, CPU='{get_cpu_info()}' WHERE `IP-Adresse`='{ipadress}'"
return mysql_connect.update_cpu(query,"Stines-GmbH","") return mysql_connect.update_cpu(query,"Stines-GmbH",get_cpu_sql()[0])

BIN
dist/Start.exe vendored

Binary file not shown.

BIN
dist/main.exe vendored

Binary file not shown.

42
main.py
View File

@ -1,15 +1,9 @@
import Controller.ssh_tunnel as ssh_tunnel
ssh_tunnel.server_start()
import socket import socket
from Controller import adcontroller_export, exchange_export, rds_export, smtp_export, zammad, system_info from Controller import adcontroller_export, exchange_export, rds_export, smtp_export, zammad, system_info
import Controller.mysql_connect as mysql_connect import Controller.mysql_connect as mysql_connect
import random import random
import subprocess import subprocess
import socket import socket
import os
## Gibt Name der Datei zum Debugen aus
filename = os.path.basename(__file__)
def get_local_ip(): def get_local_ip():
try: try:
@ -23,6 +17,9 @@ def get_local_ip():
print(f"Fehler beim Abrufen der lokalen IP-Adresse: {e}") print(f"Fehler beim Abrufen der lokalen IP-Adresse: {e}")
return None return None
def system_info_get(ip,name):
system_info.set_system_info(name,ip)
def adcontroller(ip,name): def adcontroller(ip,name):
adcontroller_export.adcontroller(ip, name) adcontroller_export.adcontroller(ip, name)
@ -78,27 +75,25 @@ def create_windows_task(task_name, command, schedule):
try: try:
command_line = f'schtasks /F /create /ru "SYSTEM" /tn "{task_name}" /tr "{command}" /sc {schedule}' command_line = f'schtasks /F /create /ru "SYSTEM" /tn "{task_name}" /tr "{command}" /sc {schedule}'
subprocess.run(command_line, shell=True, check=True) subprocess.run(command_line, shell=True, check=True)
print(f"{filename}-Windows task '{task_name}' created successfully.") print(f"Windows task '{task_name}' created successfully.")
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError as e:
print(f"{filename}-Failed to create Windows task. Error: {e}") print(f"Failed to create Windows task. Error: {e}")
query = "SELECT * FROM `Stines-GmbH`.`Kunden-Server` WHERE `IP-Adresse` = ""'{}'""".format(get_local_ip())
# query = "SELECT * FROM `Stines-GmbH`.`Kunden-Server` WHERE `IP-Adresse` = ""'{}'""".format("172.18.1.6")
# query = "SELECT * FROM `Stines-GmbH`.`Kunden-Server` WHERE `IP-Adresse` = ""'{}'""".format(get_local_ip()) print("Before Get List")
print(mysql_connect.get_ip(query))
query = "SELECT * FROM `Stines-GmbH`.`Kunden-Server` WHERE `IP-Adresse` = ""'{}'""".format("172.19.1.5")
print(f"{filename}-Before Get List")
list = mysql_connect.get_ip(query) list = mysql_connect.get_ip(query)
print(f"{filename}-Atfer Get IP") print("Atfer Get IP")
if list == []: if list == []:
query_insert = f"INSERT INTO `Kunden-Server` (Name,`Server-Name`,`IP-Adresse`,Funktion,CPU,RAM,Speicher) VALUES ('unkown','{socket.gethostname()}','{get_local_ip()}','-','{system_info.get_cpu_info()}','{system_info.get_ram_info()}','{system_info.get_hdd_info()}')" query_insert = f"INSERT INTO `Kunden-Server` (Name,`Server-Name`,`IP-Adresse`,Funktion,CPU,RAM,Speicher) VALUES ('unkown','{socket.gethostname()}','{get_local_ip()}','-','{system_info.get_cpu_info()}','{system_info.get_ram_info()}','{system_info.get_hdd_info()}')"
print(f"{filename}-List is Empty") print("List is Empty")
mysql_connect.add_user(query_insert,"Stines-GmbH","") mysql_connect.add_user(query_insert,"Stines-GmbH","")
set_ipaddress = [] set_ipaddress = []
print(f"{filename}-Before Row") print("Before Row")
# Ergebnisse durchlaufen und ausgeben # Ergebnisse durchlaufen und ausgeben
for row in list: for row in list:
name = row[2] name = row[2]
@ -107,7 +102,7 @@ for row in list:
lastchange = row[6] lastchange = row[6]
funktion = row[7] funktion = row[7]
token = row[8] token = row[8]
print(f"{filename}-Inside Row {name}-{funktion}") print(name)
cursor = mysql_connect.get_database() cursor = mysql_connect.get_database()
@ -121,13 +116,12 @@ for row in list:
database_exists = True database_exists = True
# Datenbank erstellen, wenn sie noch nicht existiert # Datenbank erstellen, wenn sie noch nicht existiert
print(f"{filename}-{database_exists}")
if not database_exists: if not database_exists:
create_database_query = f"CREATE DATABASE `{name}`" create_database_query = f"CREATE DATABASE `{name}`"
mysql_connect.create_database(create_database_query,name) mysql_connect.create_database(create_database_query,name)
print(f"{filename}-Die Datenbank '`{name}`' wurde erfolgreich erstellt.") print(f"Die Datenbank '`{name}`' wurde erfolgreich erstellt.")
else: else:
print(f"{filename}-Die Datenbank '`{name}`' existiert bereits.") print(f"Die Datenbank '`{name}`' existiert bereits.")
if token is not None: if token is not None:
eval(funktion + '("' + ipadress + '","' + name + '","' + token + '")') eval(funktion + '("' + ipadress + '","' + name + '","' + token + '")')
@ -137,13 +131,11 @@ for row in list:
else: else:
eval(funktion + '("' + ipadress + '","' + name + '")') eval(funktion + '("' + ipadress + '","' + name + '")')
print(f"{filename}-FOR system_info_get: {set_ipaddress}") print(set_ipaddress)
system_info.set_system_info(f"{set_ipaddress}") system_info_get(f"{set_ipaddress}","Stines-GmbH")
task_name = "Reports" task_name = "Reports"
command_to_execute = "C:\\Scripte\\Start.exe" command_to_execute = "C:\\Scripte\\Start.exe"
schedule = f"daily /st 23:{random.randint(0, 59)}" # You can customize the schedule here schedule = f"daily /st 23:{random.randint(0, 59)}" # You can customize the schedule here
create_windows_task(task_name, command_to_execute, schedule) create_windows_task(task_name, command_to_execute, schedule)
ssh_tunnel.server_stop()