Mit Script Java-Konsole auslesen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
DerH0ns
Beiträge: 61
Registriert: 06.12.2011 19:47:00
Lizenz eigener Beiträge: GNU Free Documentation License

Mit Script Java-Konsole auslesen

Beitrag von DerH0ns » 04.04.2012 17:14:48

Hi
Ich habe einen Gameserver genauer Minecraft/Bukkit. Ich würde gerne die Spieler die Gerde online sind auf meiner Homepage listen da ich aber gerne auf zusätzliche plugins verzichten.Also will ich das per Script machen, dies soll alle 10 Sec den zum auflisten der Spieler senden.Das ist auch kein Problem aber wie bekomme ich den Text ausgelesen den mir der Befehl in der Gameserver/Java Konsole ausgibt?

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Mit Script Java-Konsole auslesen

Beitrag von Cae » 04.04.2012 20:06:12

So was in der Art:

Code: Alles auswählen

(
        echo playerstatus # oder wie der Konsolenbefehl halt heißt
        sleep 60
) | /path/to/mc/srv >/var/run/mc-status
Simples PHP-Skript dazu:

Code: Alles auswählen

<?php
if (false !== ($status = file_get_contents("/var/run/mc-status"))) {
        echo "<pre>Server-Status:\n$status</pre>";
} else {
        die("Heute nicht.");
}
?>
Das schreibt jede Minuten den Serverstatus nach /var/spool/mc-status. Das PHP-Skript schaut dort bei jedem Seitenaufruf hinein. Der Nachteil bei dem sleep und Reinpipen ist: Du kommst nicht mehr an die Konsole dran. Imho hat Screen auch so eine Funktion, du schreibst in eine Pipe und es wird in der Sitzung "eingegeben".

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

DerH0ns
Beiträge: 61
Registriert: 06.12.2011 19:47:00
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Mit Script Java-Konsole auslesen

Beitrag von DerH0ns » 04.04.2012 21:31:19

Glaube eher nicht. Die Serversoftware ist ein Javaprogramm(.jar) in läuft in einem virtuellen Terminal(Screen)
Befehle Senden tu ich so:

Code: Alles auswählen

screen -S bukkit -X stuff $'who'
screen -S bukkit -X eval "stuff \015" 
Ausgabe:

Code: Alles auswählen

>who
21:30:44 [INFO] There are 1 out of maximum 30 players online.
21:30:44 [INFO] Connected players:[AFK]Crafter6432

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Mit Script Java-Konsole auslesen

Beitrag von Cae » 04.04.2012 22:43:20

Achso, das macht es einfacher. Einfach den ersten Teil abwandeln:

Code: Alles auswählen

(
        screen -S bukkit -X stuff $'who'
        screen -S bukkit -X eval "stuff \015"
) >/var/run/mc-status
. Achja, und das Sleep macht nur Sinn, wenn es in einer Endlosschleife steht, ein Cronjob macht aber vielleicht mehr Sinn.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

DerH0ns
Beiträge: 61
Registriert: 06.12.2011 19:47:00
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Mit Script Java-Konsole auslesen

Beitrag von DerH0ns » 04.04.2012 22:50:02

Funktioiert leider nicht die Datei ist leer :(

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Mit Script Java-Konsole auslesen

Beitrag von Cae » 04.04.2012 23:00:36

Leer heißt 0 Byte? Falls nicht, schau' sie dir mit hd an. Wenn du anstatt >/var/run/mc-status jetzt | cat hinschreibst, ist die Ausgabe wie zuvor? Du könntest auch jeden Befehl einzeln umleiten, musst dann aber aufpassen und für den zweiten >> verwenden, sonst wird der Inhalt überschrieben.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

DerH0ns
Beiträge: 61
Registriert: 06.12.2011 19:47:00
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Mit Script Java-Konsole auslesen

Beitrag von DerH0ns » 04.04.2012 23:04:20

ja 0 leer nix. Cat genau das gleiche ich glaube ja es liegt daran das die Konsole von java ist.

Antworten