Basteln eines Webinterface's, externe scripts ausführen

Bash, Shell, PHP, Python, Perl, CGI
niklas_
Posts: 122
Joined: 2003-08-13 20:46
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by niklas_ »

den namen des screens übergeben?
d3nation
Posts: 68
Joined: 2004-11-30 14:09
Contact:
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by d3nation »

2853.pts-1.linux ist der name des screens :)
d3nation
Posts: 68
Joined: 2004-11-30 14:09
Contact:
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by d3nation »

perfect ich hab eine andere lösung gefunden: ein perl script, siehe hier:

http://sourceforge.net/projects/kkrcon/
d3nation
Posts: 68
Joined: 2004-11-30 14:09
Contact:
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by d3nation »

eine frage zu php:

Code: Select all

<?php
$text = passthru("sudo -u root ./kkrcon.pl -a localhost -p 1338 -t old 1234 status");
?>
der befehl zu passthru ist 100% richtig. Mein problem ist dass ich die ausgabe weiterverarbeiten will und NICHT ausgen möchte. Nun gibt er mit das immer aus, es sollte aber nur in der variabel gespeichert werden..

bitte schnell antworten :P danke!
wirsing
Posts: 604
Joined: 2002-11-20 21:32
Location: Vaihingen und Karlsruhe
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by wirsing »

Du willst dir den Backtick-Operator und/oder proc_open und Konsorten ansehen. Zum Beispiel von hier an: http://www.php.net/manual/de/ref.exec.php
d3nation
Posts: 68
Joined: 2004-11-30 14:09
Contact:
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by d3nation »

ähm sry, nein will ich glaub ich nicht^^ mein problem ist einfach dass ich dass passthru() in einer variable speichern will ohne es auszugeben... er macht immer eine ausgabe.
d3nation
Posts: 68
Joined: 2004-11-30 14:09
Contact:
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by d3nation »

ach sry ich hab nicht gescheit gelesen, du hast recht wirsing, danke!!
d3nation
Posts: 68
Joined: 2004-11-30 14:09
Contact:
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by d3nation »

print map: oasis num score ping name lastmsg address qport rate --- ----- ---- --------------- ------- --------------------- ----- -----

dies ist eine ausgabe, die ich in php zerlegen möchte um sie anschliesend an ein locales bash script weiterzugeben.

Ich will die "map" herausfinden, sprich dass was nach der zeichenfolge "map[leerzeichen]" steht bis zum nächsten leerzeichen. Wie stelle ich dass am besten an? ich hab mir überlegt mit strpos(); einfach festzustellen an welcher stelle "map" liegt, von dort aus 4 zeichen weitergehen und dann eben alle zeichen bis zum nächsten leerzeichen festzustellen und in eine variable zu speichern. Ich komm damit allerdings gar nicht klar. Wär cool wenn mir jemand weiterhelfen könnte. Danke

mfg dee
d3nation
Posts: 68
Joined: 2004-11-30 14:09
Contact:
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by d3nation »

achso, meine idee bis jetzt:

Code: Select all

$text = `sudo -u root ./kkrcon.pl -a localhost -p 1338 -t old 12345 status`;

echo $text;

echo "<br><br>";

$map = "map";
$num = strpos($text,$map)+1;

echo $num;
echo "<br><br>";

$num = $num -1;
$var = substr($text, $num);

echo $var;

ergiebt folgende ausgabe auf der seite:

Code: Select all

print map: oasis num score ping name lastmsg address qport rate --- ----- ---- --------------- ------- --------------------- ----- ----- 

7

map: oasis num score ping name lastmsg address qport rate --- ----- ---- --------------- ------- --------------------- ----- ----- 

Also er liest schon einmal nur ab "map:" soll aber NUR bis zu dem leerzeichen nach oasis lesen. Und ich kann auch $var = substr($text, $num); nicht so schreiben:

$var = substr($text, $num, 10);

weil die ausgaben nach map: immer verschieden sein kann.[/code]
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by Roger Wilco »

d3nation wrote:Ich will die "map" herausfinden, sprich dass was nach der zeichenfolge "map[leerzeichen]" steht bis zum nächsten leerzeichen. Wie stelle ich dass am besten an?
http://de.php.net/preg_split
d3nation
Posts: 68
Joined: 2004-11-30 14:09
Contact:
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by d3nation »

ich habs nun folgendermaßen gelöst:

Code: Select all

<?php

echo "<h1>1n1 Server Status:</h1>";

$text = `sudo -u root ./kkrcon.pl -a localhost -p 1338 -t old 12345 status`;


$map = "map";
echo "<br>";


$num = strpos($text,$map)+6;
echo "<br>";

$num = $num -1;
$var = substr($text, $num);

function strrrchr($haystack,$needle)
{
   return substr($haystack,0,strpos($haystack,$needle)-1);
}
$map = strrrchr($var,"nu");
echo "Aktuelle map: $map";

echo "<br><br>";

if(file_exists("$map.jpg")) {
echo "<img src="$map.jpg">";
} else {
echo "<img src="no.jpg">";
}

?>

ok nächste frage (sry ich komm heute gar nicht zurecht)

wie kann ich aus einer externen datei (z.b. test.txt) auslesen wie viele zeilen sie hat? mit count() irgendwie oder? plz help


thx, dee
chris76
Posts: 1878
Joined: 2003-06-27 14:37
Location: Germering
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by chris76 »

Code: Select all

man wc
Gruß Christian

BofH excuses: YOU HAVE AN I/O ERROR -> Incompetent Operator error
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by Roger Wilco »

Oder in PHP:

Code: Select all

count(file("/pfad/zur/datei"));
d3nation
Posts: 68
Joined: 2004-11-30 14:09
Contact:
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by d3nation »

ohja "wc" ist die perfecte lösung.. vielen dank an beide! ich bin gerade an dem teil des webinterfaces der erkennt welche map geladen ist, ein dazugehöriges pic anzeigt und auch die belegten slot und max. slot anzeigt usw. nur zur info :) ich versuch heute noch fertig zu werden, viel. presentiere ich nacher noch das ergebnis! danke
d3nation
Posts: 68
Joined: 2004-11-30 14:09
Contact:
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by d3nation »

sooo, nun mal weiter im text. Für ein webinterface ist es wichtig den server status abzurufen, ob er läuft und dass man ihn neustarten kann haben wir ja schon erledigt ;)

nun hab ich was gebasteld und dokomentiert dass ich auch als open source zur verfügung stellen möchte: eine auf qstat basierende status abfrage von servern. die ersten zeilen des scripts (beschreibung):

Code: Select all

#################################################
##### PHP Server Status Tool for ET Servers #####
#                                               #
#       (c) by www.fragland.org                 #
#                                               #
#       PHP Server Status Tool                  #
#                                               #
#       Feedback to josef@werbinek.net          #
#                                               #
################# - R0F - #######################
#################################################


# 1. Folgende Variabeln Anpassen:

$ip = "213.239.207.195:27771";  # IP des servers von dem der Status angezeigt werden soll
$server_art = "etpro";          # Art des servers: "etpro" oder "etmain"

$map_s_heigh = "";              # Gibt die _soll_ hoehe des map pics an
$map_s_width = "";              # Gibt die _soll_ breite des maps pics an
$map_var = "";                  # Hier koennen zusaetzliche tag-erweiterungen fuer dass map pic angegeben werden
                                #  wie z.b. align=right usw.
$map_link = "";                 # Hier kann eine webseite angegeben werden auf die man gelangt wenn man auf dass
                                # map_pic klickt.


# 2. Zum ausgeben des status folgende Variabeln verwenden: (NICHT VERAENDERN!)

# $player       |gibt zahl der player aus, z.b. 10/20
# $map          |gibt aktuelle map aus, z.b. goldrush
# $map_pic      |gibt map_pics aus, muss "name_der_map.jpg" haben, wenn nicht vorhanden wird "no.jpg" angezeigt
# $server_name  |gibt server name aus, z.b. "r0f judgement day"
# $ip_disp      |gibt server ip aus, z.b. "213.239.210.98:27778"



# 3. Zum ausgeben des status einfach ans ende dieses files die variabeln beliebig ausgeben z.b. (echo $player;)
# 4. Zum ausgeben der spieler namen die letze zeile am ende dieses files auskommentieren (# entfernen) (include(player.php);


Nun ladet euch dass teil einfach hier runter:

http://wserver2.ath.cx/status.tar

Wenn ihrs entpackt habt werdet ihr eine menge datei sehen. aufgerufen wird dass ganze über die status.php

Doch davor am besten die status.php editieren, und die ersten zeilen wie dort beschrieben anpassen. Das designen überlasse ich euch, ihr habt ja alle variabeln zur verfügung. Theoretisch kann man natürlich auch alle variabeln über hidden felder zu einer neuen seite weitergeben wenn man damit gar nicht zurecht kommt. Anschauen könnt ihr euch das ganze unter

http://wserver2.ath.cx/WI/et/status/status.php

wo jedoch nichts vom design her gemacht ist...
Wie unschwer zu erkennnen ist gibt es folgende variabeln:

# $player |gibt zahl der player aus, z.b. 10/20
# $map |gibt aktuelle map aus, z.b. goldrush
# $map_pic |gibt map_pics aus, muss "name_der_map.jpg" haben, wenn nicht vorhanden wird "no.jpg" angezeigt
# $server_name |gibt server name aus, z.b. "r0f judgement day"
# $ip_disp |gibt server ip aus, z.b. "213.239.210.98:27778"

die jeweils über echo $player; z.b. ausgegeben werden können oder eben über hidden felder an eine andere seite weitergeleitet wird. Momentan funktioniert es nur für ET server, da ich mit denen des meiste teste. Die player werde am ende der seite ausgegeben, aber auf der testseite (url oben) sind sie nicht includiert sondern mit folgendem java script per link aufrufbar:

Code: Select all

<script type="text/javascript">
function klick() {
open("./player.php", "FORMULAR", "toolbar=no, menubar=no, width=250, height=425")
}
</script>

<a href="javascript:klick()">Player</a>

Ich hoffe es bringt ein paar leuten was wenn nicht isses auch egal, ich brauch es ja selber fürs endgültige webinterface. Ich wollte es nur als open source zur vefügung stellen weil ich seh dass der thread hier gut besucht ist :) und viel. doch ein paar leute danach suchen. Ein praktisches beispiel der anwendung poste ich bald, da ich mit einem webmaster einer clan-page gesprochen habe der das script einfach einbauen wird.

Nun werde ich mich damit beschäftigen ein formular zu erstellen um per mausklick vom server zu kicken oder vielleicht sogar ins andere team zu moven. Man wird sehen. Feedback erwünscht :)

Mfg

dee
d3nation
Posts: 68
Joined: 2004-11-30 14:09
Contact:
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by d3nation »

ach ja noch kurz was zum "mappic" dem eigentlich genialsten teil des scripts:

es wird ein pic angezeigt das für jede map anders sein kann. Ihr müsst dazu bloß das pic genauso nennen wie die map, wenn die map oasis heist muss auch dass bild oasis.jpg heissen. (auf .jpg achten!)

Auch wenn man eine map laufen hat wo kein bild gefunden wird (php sucht ob es das pic im SELBEN ordner gibt) wird ein pic angezeigt, und zwar "no.jpg" was auch im selben ordner ist.


mfg :)
d3nation
Posts: 68
Joined: 2004-11-30 14:09
Contact:
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by d3nation »

moin!

hm schade dass wenig bzw. kein feedback kommt, nächstes mal eben QT nicht mehr open source machen und beschreiben.
Naja egal..

So nun hab ich die hauptsächlichen sachen für dass webinterface schon gut wie fertig, hab aber nun ein problem: der kunde oder benutzer soll von seinem webinterface aus verschiedene config datein bearbeiten. Nun liegen aber theoretisch gesehen nicht alle dateien auf dem localen server wo des WI läuft, sondern aus welchen gründen auch immer auf einem anderen server. Um diese datein nun zu bearbeiten ist mir als erstes eingefallen die aufgabe (schreib in config X auf server Y) in eine sql tabelle zu schreiben und dann von jedem server per cronej. oder so abzufragen. Aber dass ganze soll realtime geschehen. Deshalb wollte ich eure meinung hören wie dass am besten zu erledigen ist. Ich dachte entweder ein php-ftp zugriff basteln oder irgendeine art ssh tunnel oder so, kann ja auch ein script sein, muss nicht zwingend php sein! Im grunde ist alles möglich, aber ich wollte auf keinen externen programme zurückgreifen, sondern etwas programmieren was unabhängig von externen tools ist. Hat jemand eine idee wie man des am besten lösen könnte? Würde mich freun wenn jeder seine meinung dazu abgibt.

Danke!

mfg
dee
niklas_
Posts: 122
Joined: 2003-08-13 20:46
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by niklas_ »

manchmal ist eben mal was anderes wichtiger als pc ;)

möglichkeiten, die ich sehe
1.) Partitionen der anderen Server, auf denen die Configs sind, mounten und in das System einbinden

2.) FTP Zugriff.
Datei vom FTP laden
editieren
Auf FTP schieben
overtop
Posts: 15
Joined: 2003-03-05 08:22
Location: NRW
 

Re: Basteln eines Webinterface's, externe scripts ausführen

Post by overtop »

Gibts das auch als paket ?
Post Reply