Re: Basteln eines Webinterface's, externe scripts ausführen
Posted: 2004-12-11 20:36
hm nene bei suse 9.1 wird alleine durch die angabe von -d /usr/apps/--
schon des homeverzeichnis angegeben ;)
schon des homeverzeichnis angegeben ;)
Resources for System-Administrators
https://www.rootforum.org/forum/
Code: Select all
$startscript = "k-cs-$name";
$dz = fopen($startscript, "w");
fwrite ($dz, $start);
fclose ($dz);
system("chown $name ./k-cs-$name");
system("rm move.inc");
passthru("sudo -u $name ./k-cs-$name start");Code: Select all
$sudoersIh = "";
$sudoersIh = $sudoersIh ."n wwwrun ALL=($name) NOPASSWD: $WI_path/k-cs-$name";
$sudoersIh = $sudoersIh ."n wwwrun ALL=($name) NOPASSWD: ALL";
$sudoersdat = "/etc/sudoers";
$dz = fopen($sudoersdat, "a");
fwrite ($dz, $sudoersIh);
fclose ($dz);ganz genau. das system - so wie es im moment läuft - benötigt auf jedem server apache damit es funktioniert.Moskito wrote:Hallo erstmal...
mal ne andere Frage, hast Du etwa auf jedem Server auch noch Apache laufen ??
Also ich vermiete auch Server und hab auf jedem Rechner nur die Gameserver laufen.
Ich habe auf einem Server das Webinterface laufen und führe Scripts über ssh aus.
Der Apache User steht in der authorized_user der einzelnen Gameserveruser.
So kann ich auch die configs einlesen etc.
Neue Server werden auf einen klick hin installiert.
Reinstall etc, für alles gibt es scripts die im skel Verzeichnis liegen und bei der ersten Einrichtung direkt mitkopiert werden.
Plugins installieren und vieles mehr.
Wieviel Server hast Du denn schon ?
Code: Select all
#include <eigene/sudoers.conf> Code: Select all
#INCLUDE /etc/sudoers.own.configAlles klar. Problem kannst du umgehen, indem du nicht mit einem User in der suoers sondern mit einer Gruppe arbeitest.d3nation wrote:ne sry des mit sudo bzw. des includieren klappt leider nicht so. :( oh dass wäre echt cool, poste mal waste gefunden hast :)
hatte die woche leider auch sehr wenig zeit, tut mir leid, privater stress...
denke mal die woche werde ich (endlich) wieder bisschen weitermachen können :)
Ist möglich. Problem: Eine Verzögerung von x Minuten. Die Variante mit sudo erlaubt eine Realtime-Ausführung. Ein weiteres Problem dass daraus resultiert: Was passiert, wenn 2 mal das Cronscript (welches alle x Minuten ausgeführt wird) gestartet wird? Führt meiner Meinung nach unweigerlich zu "Guddelmuddel".SvenK wrote:Wieso speicherst du nciht alles in einer art "todo" sql tabelle. So hab cih das auch laufen. ein zentrales interface mit allen relevanten daten usw.. dann setze ich zb den wert startserver auf 1 mit der server id. auf den ganzen kisten rennt dann jeweils ein kleines script was über einen ssh tunnel die datenbank abfragt und schaut ob was zutun ist. wenn ja macht es das. ( rennt als root ) start befehl kanste dann per screen machen und unterm anderen user.
Dann braucht man auch nciht auf jeder kiste wo die kunden sind den apache laufen lassen. sondern nur perl oder halt php.
Und man hat die verwaltung zentral.
Nur ein vorschlag Smile
Code: Select all
$endung = substr($_FILES['Datei']['name'], -3, 3);Code: Select all
if ($endung == "bsp") {
$Upload = "$path/cstrike/maps/$Datei_name";
copy ($Datei,$Upload);
echo "<H1>$Datei_name wurde hochgeladen.</H1>";
}
if ($endung == "zip") {
$Upload = "$path/cstrike/$Datei_name";
copy ($Datei,$Upload);
system("unzip $path/cstrike/$Datei_name -d $path/cstrike/");
echo "<H1>$Datei_name wurde hochgeladen und entpackt.</H1>";
}
if ($endung == "zip") {
echo "Die datei liegt im .zip Format vor!";
} elseif ($endung == "bsp") {
echo "Die datei liegt im .bsp Format vor!";
}
Code: Select all
else {
echo "Die datei MUSS im .bsp oder .zip Format vorliegen";
}
Gute idee!Alles klar. Problem kannst du umgehen, indem du nicht mit einem User in der suoers sondern mit einer Gruppe arbeitest.
Erlaube einer Gruppe, ein bestimmtes Script auszuführen und weise jedem neuen User diese Gruppe zu. Dann klappt es ohne Probleme!
Code: Select all
Warning: mysql_connect(): Lost connection to MySQL server during query in /srv/www/htdocs/WI/test/db/test.php on line 8
Fatal error: Call to undefined function: mysql_create_db() in /srv/www/htdocs/WI/test/db/test.php on line 11Code: Select all
<?php
$Host = "213.239.207.11";
$Name = "wi";
$Kennwort = "wer*i*";
$sql = mysql_connect($Host,$Name,$Kennwort);
$dbname = "test";
mysql_create_db($dbname,$sql);
mysql_select_db($dbname);
$create = "CREATE TABLE test (name VARCHAR(30), email VARCHAR(30), passwort VARCHAR(30)";
mysql_query($create, $sql);
$insert = "INSERT INTO test (name, email, passwort) values ('dee', 'josef@werbinek.net', 'wer*i*')";
mysql_quary($insert, $sql);
echo "...done<br><br><br>";
$sel = mysql_query("SELECT * FROM test");
$Reihen = mysql_num_rows($sel);
echo "Anzahl der Reihen in <i>personen</i>: $Reihen.<BR>";
while ($datensatz = mysql_fetch_row($sel)){;
foreach ($datensatz as $feld) {
echo "$feld<br>";
}
echo "<br>";
}
mysql_close($sql);
?>
sonst schauen die befehle gut ausCode: Select all
<?php $Host = "213.239.207.11"; $Name = "wi"; $Kennwort = "wer*i*"; $sql = mysql_connect($Host,$Name,$Kennwort); $dbname = "test"; # die datenbank ist doch schon erstellt, also nicht bei jedem aufruf neu erstellen #mysql_create_db($dbname,$sql); mysql_select_db($dbname); # das anlegen der testtabelle auch einmalig über phpmyadmin $create = "CREATE TABLE test (name VARCHAR(30), email VARCHAR(30), passwort VARCHAR(30)"; mysql_query($create, $sql); $insert = "INSERT INTO test (name, email, passwort) values ('dee', 'josef@werbinek.net', 'wer*i*')"; mysql_quary($insert, $sql); echo "...done<br><br><br>"; $sel = mysql_query("SELECT * FROM test"); $Reihen = mysql_num_rows($sel); echo "Anzahl der Reihen in <i>personen</i>: $Reihen.<BR>"; while ($datensatz = mysql_fetch_row($sel)){; foreach ($datensatz as $feld) { echo "$feld<br>"; } echo "<br>"; } mysql_close($sql); ?>
Code: Select all
Warning: mysql_connect(): Lost connection to MySQL server during query in /srv/www/htdocs/WI/test/db/test.php on line 8
Fatal error: Call to undefined function: mysql_create_db() in /srv/www/htdocs/WI/test/db/test.php on line 11d3nation wrote:ist es möglich zu einem "Detached screen" befehle zu senden?
Code: Select all
$ screen --help|grep Execute
-X Execute <cmd> as a screen command in the specified session.Aber es will und will nicht funktionieren. Was mache ich falsch?SYNOPSIS
screen [ -options ] [ cmd [ args ] ]
...
-X Send the specified command to a running screen sesÃ?Â
sion. You can use the -d or -r option to tell screen
to look only for attached or detached screen sesÃ?Â
sions. Note that this command doesn't work if the
session is password protected.
...
Code: Select all
screen -X ls 2853.pts-1.linux