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?
Mit Script Java-Konsole auslesen
Re: Mit Script Java-Konsole auslesen
So was in der Art:Simples PHP-Skript dazu:
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
Code: Alles auswählen
(
echo playerstatus # oder wie der Konsolenbefehl halt heißt
sleep 60
) | /path/to/mc/srv >/var/run/mc-status
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.");
}
?>
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
-
- Beiträge: 61
- Registriert: 06.12.2011 19:47:00
- Lizenz eigener Beiträge: GNU Free Documentation License
Re: Mit Script Java-Konsole auslesen
Glaube eher nicht. Die Serversoftware ist ein Javaprogramm(.jar) in läuft in einem virtuellen Terminal(Screen)
Befehle Senden tu ich so:
Ausgabe:
Befehle Senden tu ich so:
Code: Alles auswählen
screen -S bukkit -X stuff $'who'
screen -S bukkit -X eval "stuff \015"
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
Re: Mit Script Java-Konsole auslesen
Achso, das macht es einfacher. Einfach den ersten Teil abwandeln:. Achja, und das Sleep macht nur Sinn, wenn es in einer Endlosschleife steht, ein Cronjob macht aber vielleicht mehr Sinn.
Gruß Cae
Code: Alles auswählen
(
screen -S bukkit -X stuff $'who'
screen -S bukkit -X eval "stuff \015"
) >/var/run/mc-status
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
-
- Beiträge: 61
- Registriert: 06.12.2011 19:47:00
- Lizenz eigener Beiträge: GNU Free Documentation License
Re: Mit Script Java-Konsole auslesen
Funktioiert leider nicht die Datei ist leer
Re: Mit Script Java-Konsole auslesen
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
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
-
- Beiträge: 61
- Registriert: 06.12.2011 19:47:00
- Lizenz eigener Beiträge: GNU Free Documentation License
Re: Mit Script Java-Konsole auslesen
ja 0 leer nix. Cat genau das gleiche ich glaube ja es liegt daran das die Konsole von java ist.