Sponsor-Board.de

Normale Version: Qstat Ausgabe per Cronjob sichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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

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]

Jede Sekunde ja der load würde warscheinlich in die Höhe schnellen ich würde alle 10sec oder 5sec nehmen reicht alle mal
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
Referenz-URLs