Guten Abend,
zu meinem Problem, die Eingabe an sich funktioniert, aber nicht die Ausgabe.
Bei der Installation eines Gameserver über das Web wäre es schön wenn man die Ausgabe in "Echtzeit" erhält.
Am besten wie bei Webmin, bei der "Befehls-Shell" oder nach dem Aktualisieren der Pakete.
Ist es möglich irgendwie mittels Javascript / Ajax / Perl so etwas zu realisieren, wenn ja, wie?
Hier der aktuelle Code:
|
PHP Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
...
include "class.shell2.php";
$ssh = new shell2; // init class
//$ssh = new Net_SSH2($_POST['ip']);
//$ssh->login($user,$pass,$host
if (!$ssh->login('root', 'PASSWD','IP')) {
$ars.='Login Failed<br/>'.$ssh->error;;
}else{
$kunde = $_POST['kunde'];
$gid = $_POST['gid'];
$ftppass =$_POST['ftppass'];
$cmd_line = '-ip '.$_POST['ip'].' -game '.$game.' -port +map '.$_POST['map'].' -maxplayers '.$_POST['slots'];
$ssh->exec_cmd("/verzeichniss/zu/script/ssh.sh -k getinstall -i $kunde -m $gid -g $game -w $ftppass -p $cmd_line -e $ex_daemon");
$ars='<h3>Output</h3>
<pre>'.$ssh->get_output().'</pre>';
}
...
|
Folgendes wird in der .sh ausgeführt:
|
Bash
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
...
# Get command line args
while getopts "i:g:e:p:n:k:j:m:w:" OPTION
do
case $OPTION in
i)
GS_USER=$OPTARG
;;
g)
GAME=$OPTARG
;;
e)
DAEMON=$OPTARG
;;
p)
CMD_OPTS=$OPTARG
;;
n)
SCREEN_NM=$OPTARG
;;
k)
CHANGER=$OPTARG
;;
j)
SRV_NICK=$OPTARG
;;
m)
GS_ID=$OPTARG
;;
w)
PWD=$OPTARG
;;
?)
usage
exit
;;
esac
done
...
getinstall() {
# gameserver = 10013 | ARS
# gameserver = 10004 | DSWh
#useradd -p $PWD -u 10004 -o -s /bin/false -d /verzeichniss/zu/den/gameserver/$GS_USER$GS_ID gs$GS_USER$GS_ID
mkdir /verzeichniss/zu/den/gameserver/$GS_USER$GS_ID
cd /verzeichniss/zu/den/gameserver/
./steam -command update
./steam -command update -game "$GAME" -dir /verzeichniss/zu/den/gameserver/$GS_USER$GS_ID
chown -R gs$GS_USER$GS_ID /verzeichniss/zu/den/gameserver/$GS_USER$GS_ID/*
if [ -d /verzeichniss/zu/den/gameserver/$GS_USER$GS_ID/orangebox ]
then
ORANGE= orangebox
else
ORANGE=
fi
cd /verzeichniss/zu/den/gameserver/$GS_USER$GS_ID/$ORANGE
sudo -u gs$GS_USER$GS_ID screen -dmS $GS_USER$GS_ID ./$DAEMON $CMD_OPTS
}
...
|
Die klasse ist von folgender Seite:
http://php-ssh2.sourceforge.net/
Hoffe es gibt da irgendeine Lösung für

Mit Zitat antworten