[add] first
This commit is contained in:
commit
b5b085ad3f
19
.vscode/launch.json
vendored
Normal file
19
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Listen for Xdebug",
|
||||||
|
"type": "php",
|
||||||
|
"request": "launch",
|
||||||
|
"port": 9010
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Launch currently open script",
|
||||||
|
"type": "php",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${file}",
|
||||||
|
"cwd": "${fileDirname}",
|
||||||
|
"port": 9010
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
58
index.php
Normal file
58
index.php
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>更新打包機Slot資源</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h1>更新打包機Slot資源</h1>
|
||||||
|
<form action="." method="post">
|
||||||
|
SlotID: <input type="test" name="SlotID" value="<?php echo $_POST["SlotID"] ?? ""; ?>">
|
||||||
|
<input type="hidden" name="action" value="SlotUpdate">
|
||||||
|
<input type="submit" name="action" value="更新">
|
||||||
|
<input type="submit" name="action" value="顯示Log">
|
||||||
|
</form>
|
||||||
|
<p>PS: <b>更新</b>一次會強制刷新正在使用的碰友們的網頁🥳</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
if (!$_POST) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$result = "";
|
||||||
|
$print = "";
|
||||||
|
if ($_POST["action"] === "更新") {
|
||||||
|
$SlotID = $_POST["SlotID"] ?? "";
|
||||||
|
if(!$SlotID) {
|
||||||
|
echo "請輸入SlotID";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//將上面的class檔include進來
|
||||||
|
include_once("ssh2.php");
|
||||||
|
//初始化class
|
||||||
|
$shell = new ssh2("192.168.5.45");
|
||||||
|
$shell->authPassword("catantech","catan9595");
|
||||||
|
//執行指令
|
||||||
|
$result .= "<br>" . $shell->cmdExec(". ~/Desktop/Casino-Core-Type2/gamegitpull.sh " . $SlotID);
|
||||||
|
$result .= "<br>" . $shell->cmdExec('cd ~/Desktop/Casino-Core-Type2/assets/Game/Game_' . $SlotID . '/;git log -3 --pretty=format:"%h - %an, %s : %ad" --date=format:"%Y-%m-%d %H:%M:%S"');
|
||||||
|
$print = str_replace("\n", '<br>', $result);
|
||||||
|
} else if ($_POST["action"] === "顯示Log") {
|
||||||
|
$SlotID = $_POST["SlotID"] ?? "";
|
||||||
|
if(!$SlotID) {
|
||||||
|
echo "請輸入SlotID";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//將上面的class檔include進來
|
||||||
|
include_once("ssh2.php");
|
||||||
|
//初始化class
|
||||||
|
$shell = new ssh2("192.168.5.45");
|
||||||
|
$shell->authPassword("catantech","catan9595");
|
||||||
|
//執行指令
|
||||||
|
$result .= "<br>" . $shell->cmdExec('cd ~/Desktop/Casino-Core-Type2/assets/Game/Game_' . $SlotID . '/;git log -3 --pretty=format:"%h - %an, %s : %ad" --date=format:"%Y-%m-%d %H:%M:%S"');
|
||||||
|
$print = str_replace("\n", '<br>', $result);
|
||||||
|
}
|
||||||
|
//印出指令執行結果
|
||||||
|
echo $print;
|
||||||
|
?>
|
90
ssh2.php
Normal file
90
ssh2.php
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// ssh protocols
|
||||||
|
// note: once openShell method is used, cmdExec does not work
|
||||||
|
|
||||||
|
class ssh2 {
|
||||||
|
|
||||||
|
private $host = '192.168.5.108';
|
||||||
|
private $user = 'Publisher';
|
||||||
|
private $port = '22';
|
||||||
|
private $password = 'Publisher';
|
||||||
|
private $con = null;
|
||||||
|
private $shell_type = 'xterm';
|
||||||
|
private $shell = null;
|
||||||
|
private $log = '';
|
||||||
|
|
||||||
|
function __construct($host='', $port='' ) {
|
||||||
|
|
||||||
|
if( $host!='' ) $this->host = $host;
|
||||||
|
if( $port!='' ) $this->port = $port;
|
||||||
|
|
||||||
|
$this->con = ssh2_connect($this->host, $this->port);
|
||||||
|
if( !$this->con ) {
|
||||||
|
$this->log .= "Connection failed !";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function authPassword( $user = '', $password = '' ) {
|
||||||
|
|
||||||
|
if( $user!='' ) $this->user = $user;
|
||||||
|
if( $password!='' ) $this->password = $password;
|
||||||
|
|
||||||
|
if( !ssh2_auth_password( $this->con, $this->user, $this->password ) ) {
|
||||||
|
$this->log .= "Authorization failed !";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function openShell( $shell_type = '' ) {
|
||||||
|
|
||||||
|
if ( $shell_type != '' ) $this->shell_type = $shell_type;
|
||||||
|
$this->shell = ssh2_shell( $this->con, $this->shell_type );
|
||||||
|
if( !$this->shell ) $this->log .= " Shell connection failed !";
|
||||||
|
stream_set_blocking( $this->shell, true );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function writeShell( $command = '' ) {
|
||||||
|
|
||||||
|
fwrite($this->shell, $command."\n");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function cmdExec( ) {
|
||||||
|
|
||||||
|
$argc = func_num_args();
|
||||||
|
$argv = func_get_args();
|
||||||
|
|
||||||
|
$cmd = '';
|
||||||
|
for( $i=0; $i<$argc ; $i++) {
|
||||||
|
if( $i != ($argc-1) ) {
|
||||||
|
$cmd .= $argv[$i]." && ";
|
||||||
|
}else{
|
||||||
|
$cmd .= $argv[$i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// echo $cmd;
|
||||||
|
|
||||||
|
$stream = ssh2_exec( $this->con, $cmd );
|
||||||
|
stream_set_blocking( $stream, true );
|
||||||
|
return stream_get_contents($stream);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function getLog() {
|
||||||
|
return $this->log;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function getResult(){
|
||||||
|
$contents='';
|
||||||
|
while (!feof($this->shell)) {
|
||||||
|
$contents.=fgets($this->shell);
|
||||||
|
}
|
||||||
|
return $contents;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
Loading…
Reference in New Issue
Block a user