Stellen Sie sicher, dass ein ausgeführtes .BAT-Skript über SSH / Telnet verfügbar ist

1

Bevor ich anfange, möchte ich sagen, dass das, was ich hier beschreibe, die Verwendung von Unterhaltungselektronik und PCs ist, nicht die richtige Serverhardware.

Auf meinem Windows 10-Computer wird ein Minecraft-Server im Eingabeaufforderungsfenster über ein Stapelskript ausgeführt.

Ich starte das Batch-Skript, um den Server zu starten, und tippe dann stopin das Fenster, um Minecraft anzuweisen, Daten zu speichern und den Server sicher zu stoppen. Anschließend wird das Batch-Skript gestoppt und das Fenster geschlossen.

Die anderen Administratoren und ich möchten diesen Server fernsteuern können, vorzugsweise über SSH oder Telnet, je nachdem, was einfacher einzurichten ist. Ich möchte den Administratoren 100% iges Vertrauen in den Minecraft-Server (dh die Shell des Servers während der Ausführung der Fledermausdatei) geben, aber nicht mehr , dh ich möchte nicht, dass ihnen der Zugriff auf meinen Windows-PC-Befehl gestattet wird. Linie außerhalb der Batch-Shell, mit der sie wie oben beschrieben über SSH / Telnet interagieren dürfen.

Daher sollte eine Sitzung wie folgt aussehen:

## they connect
> gamemode 0 someone
[timeanddate] timeanddate [Server]: Set gamemode for player someone to survival
> stop
[timeanddate] timeanddate [Server]: Saving chunks... (et cetera)
## session ends, they get disconnected

Dies bedeutet, dass sie nur für diesen bestimmten Prozess auf die Windows-CMD zugreifen können sollten, sofern dieser vorhanden ist (manchmal ist der Server aus Gründen der Verwaltung und anderer Dinge ausgefallen).

Wäre es möglich, so etwas zu tun? Wenn ja wie

Ich kann keine Software installieren, solange sie Open Source oder proprietär ist und von einer seriösen Quelle stammt. Ich denke über die Registrierung nach, ändere das System (es muss jedoch möglich sein, Windows-Updates zu erhalten) und erstelle Benutzerkonten und bei Bedarf einen Himbeer-Pi verwenden. Ich habe eine statische IP-Adresse und volle Portforwarding-Funktionen auf meinem Router.

Manchineel
quelle
Möglicherweise müssen Sie hier kreativ werden und den Stapel einschränken und einen Selbsttest durchführen lassen oder so, wenn er mit einer Schleife ausgeführt wird und alle so viele Sekunden wartet oder pausiert. Anschließend geben Sie dem SSH-Konto, das den Zugriff authentifiziert, nur das Löschen oder Erstellen einer Datei in demselben Ordner (Basisordner) und nur in dem Ordner, auf den er Zugriff hat. Sie müssen sie dann einfach die Befehle verwenden, um die Datei zu löschen oder zu erstellen, und das Batch-Skript prüft jede Minute usw. und es existiert oder existiert nicht, stoppt oder startet basierend darauf und lässt sie prüfen, ob Es läuft oder läuft nicht extern von einer anderen Maschine
Pimp Juice IT
Schauen Sie sich diesen Beitrag an, in dem diese Person die Batch-Skript-Logik basierend auf dem Zustand der vorhandenen oder nicht vorhandenen Datei kontrollierte und alles basierend auf der Zusammenstellung dieser Logik tat. superuser.com/questions/1242506/… . Sie würden offensichtlich eine einfache Schleifenüberprüfung in den Stapel einfügen, anstatt den Taskplaner zu verwenden. Ich nehme an, Sie möchten den Taskplaner nicht verwenden und alle 1 Minute usw. überprüfen lassen.
Pimp Juice IT
@TheFurryITSnuggleBuddy, aber wie soll der Benutzer eine Verbindung zu SSH herstellen, dann sofort auf den Bildschirm des Prozesses zugreifen und die Verbindung schließen, nachdem er die Verbindung getrennt oder der Prozess beendet hat, ohne dass er die Maschine weiter steuern kann? Und was am wichtigsten ist, wenn sie die Verbindung trennen, wie würden sie die Sitzung wieder aufnehmen (unter Linux hätte ich beispielsweise 'screen' verwendet
Manchineel
Ich habe keine Zeit, etwas zu testen, um Ihnen mit 100% iger Gewissheit zu sagen, dass eine solche Lösung funktionieren würde oder nicht, aber ich habe dies nur als Beispiel für etwas angegeben, das Sie in Betracht ziehen, damit spielen, testen usw. müssen Zeit & denke, es ist die Mühe wert. Ich nehme an, Sie sollten die Batch-Logik implementieren, um die entsprechende Aktion basierend auf einer Datei durchzuführen, die vorhanden ist oder nicht, und die Sitzung zu starten. Vielleicht wäre es nicht 100% SSH, oder sie müssten auf SSH 1 zugreifen, um etwas mit der Datei zu tun, und dann auf SSH 2-Verbindung basierend auf dem, was Sie mit der Datei usw. in SSH 1 gemacht haben, um die andere herzustellen.
Pimp Juice IT
1
Während Sie ihnen Lesezugriff auf ein Protokoll und Zugriff auf das Löschen oder Erstellen einer Datei nur in einem Ordner gewähren können, können Sie möglicherweise das erwartete Ergebnis auf eine Art Workaround erhalten. Ich könnte auch überdenken, was mich nicht wundern würde. Wenn ich später in der Woche nach diesem riesigen Datenbankprojekt, an dem ich arbeite, Zeit habe, kommt ich zu dem Schluss, dass Sie bis dahin noch nichts haben. Wenn Sie Fortschritte machen, lassen Sie mich bitte wissen, was Sie mit irgendetwas festgestellt haben, ob es voll funktionsfähig ist, auf halbem Weg arbeitet oder was auch immer.
Pimp Juice IT