Sponsor-Board.de
Qstat Ausgabe per Cronjob sichern

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Community (/forumdisplay.php?fid=56)
+--- Forum: Hilfe (/forumdisplay.php?fid=102)
+---- Forum: Scripting (/forumdisplay.php?fid=108)
+---- Thema: Qstat Ausgabe per Cronjob sichern (/showthread.php?tid=38579)


Qstat Ausgabe per Cronjob sichern - Aaron - 04.05.2013 18:21

Abend zusammen,
folgendes Situation :

Ich kann per "qstat -warsows 84.200.68.229:44410 -P -xml -utf8" folgendes in der per Shell in der Konsole ausgeben lassen (auf DEbian 6 Server) :

Zitat:
<?xml version="1.0" encoding="UTF-8"?>
<qstat>
<server type="WARSOWS" address="84.200.68.229:44410" status="UP">
<hostname>84.200.68.229:44410</hostname>
<name>^7co ^1/^7 ica (ranked)</name>
<gametype>Warsow</gametype>
<map>bipbeta2</map>
<numplayers>6</numplayers>
<maxplayers>24</maxplayers>
<ping>0</ping>
<retries>0</retries>
<players>
</players>
</server>
</qstat>


Wie kann ich mit einem Cronjob (denke einfachste Lösung) automatisch jede Sekunde die Daten in eine MySQL Tabelle schreiben ?
(Also wie kann ich nen einfaches PHP Script jede Sekunde ausführen)

Und ist die Auslastung hoch, wenn das jede Sekunde stattfindet ?

Für jede Hilfe dankbar!

mfg Aaron


RE: Qstat Ausgabe per Cronjob sichern - Leitwerk - 04.05.2013 18:38

Hallo,

an deiner Stelle würde ich ein PHP Script proggen, was genau das macht Wink. Kannst du das Programm quakestat ausführen ? Dann würde dieses Script der weiterhelfen.

PHP-Code:
<?php
02    
// Gameserverdaten
03    $ip="111.111.111.111";
04    $port="27015";
05    $server="$ip:$port";
06    // Die Spielart bestimmen. Die Manpage von quakestat erklärt Weiteres
07    $qstat="-a2s";
08    ob_start();
09     passthru(escapeshellcmd("/usr/bin/quakestat -xml -R $qstat $server"));
10     $quakestring=ob_get_contents();
11    ob_end_clean();
12    // Aus dem XML String ein Array erstellen
13    $xml simplexml_load_string($quakestring);
14    // Die Werte aus dem Array holen
15    $status=$xml->server[status];
16    $name=$xml->server->name;
17    $maxplayers=$xml->server->maxplayers;
18    $numplayers=$xml->server->numplayers;
19    // Geht bei HL2, welcher Wert im Array für andere genommen werden muss, mal selber testen
20    $gamename=$xml->server->rules->rule[2];
21    // Ein kleiner Output
22    echo "Server is $status";
23    echo "<br />$gamename";
24    echo "<br />Players: $numplayers/$maxplayers";
25    ?>


LG[/align]


RE: Qstat Ausgabe per Cronjob sichern - Nextgen-Hosting - 04.05.2013 19:50

Jede Sekunde ja der load würde warscheinlich in die Höhe schnellen ich würde alle 10sec oder 5sec nehmen reicht alle mal


RE: Qstat Ausgabe per Cronjob sichern - Sysix - 04.05.2013 19:52

Leitwerk ansatz ist schonmal korrekt Wink aber wie twinkie schon sagt, würde ich das auch cachen Wink

Chache-Klassen/Scripte findest du haufenweiße im Inet, falls du einen brauchst, kann ich dir auch gerne einen geben und dir zeigen wie du ihn benutzten musst Wink

Guß Sysix