| Line 4149... |
Line 4149... |
| 4149 |
|
4149 |
|
| 4150 |
#回傳結果
|
4150 |
#回傳結果
|
| 4151 |
return $result;
|
4151 |
return $result;
|
| 4152 |
|
4152 |
|
| 4153 |
}#if end
|
4153 |
}#if end
|
| 4154 |
|
- |
|
| 4155 |
#初始化儲存檢查檔案是否存在的腳本
|
- |
|
| 4156 |
$cmd="";
|
- |
|
| 4157 |
|
4154 |
|
| 4158 |
#設定要檢查的檔案
|
4155 |
#設定要檢查的檔案
|
| 4159 |
$cmd=$cmd."target=".\escapeshellarg($conf["fileName"]).";";
|
4156 |
$target=\escapeshellarg($conf["fileName"]);
|
| - |
|
4157 |
|
| - |
|
4158 |
#$cmd="if [ -e ".$target." ]; then echo \"found\" ; else echo \"not found\"; fi;";
|
| - |
|
4159 |
|
| - |
|
4160 |
#debug
|
| - |
|
4161 |
#var_dump(__LINE__,$cmd);
|
| 4160 |
|
4162 |
|
| 4161 |
#判斷檔案是否存在並印出 $target found 或 $target not found
|
4163 |
#要執行的指令
|
| 4162 |
#$cmd=$cmd."if [ -e \${target} ]; then echo \${target} found ; else echo \${target} not found; fi;";
|
4164 |
$cmd="if";
|
| 4163 |
|
4165 |
|
| 4164 |
#執行腳本
|
4166 |
#透過執行腳本賴判斷檔案是否存在並印出 "found" 或 "not found".
|
| 4165 |
#函式說明:
|
4167 |
#函式說明:
|
| 4166 |
#呼叫shell執行系統命令,並取得回傳的內容.
|
4168 |
#呼叫shell執行系統命令,並取得回傳的內容.
|
| 4167 |
#回傳的結果:
|
4169 |
#回傳的結果:
|
| 4168 |
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
|
4170 |
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
|
| 4169 |
#$result["error"],錯誤訊息陣列.
|
4171 |
#$result["error"],錯誤訊息陣列.
|
| Line 4178... |
Line 4180... |
| 4178 |
$conf["external::callShell"]["command"]=$cmd;
|
4180 |
$conf["external::callShell"]["command"]=$cmd;
|
| 4179 |
#$conf["fileArgu"],字串,變數__FILE__的內容.
|
4181 |
#$conf["fileArgu"],字串,變數__FILE__的內容.
|
| 4180 |
$conf["external::callShell"]["fileArgu"]=$conf["fileArgu"];
|
4182 |
$conf["external::callShell"]["fileArgu"]=$conf["fileArgu"];
|
| 4181 |
#可省略參數:
|
4183 |
#可省略參數:
|
| 4182 |
#$conf["argu"],陣列字串,指令搭配的參數,預設為空陣列.
|
4184 |
#$conf["argu"],陣列字串,指令搭配的參數,預設為空陣列.
|
| 4183 |
#$conf["external::callShell"]["argu"]=array("if","[","-e","\${target}","]",";","then","echo","\${target}","found",";","else","echo","\${target}","not founnd",";","fi",";");
|
4185 |
#$conf["external::callShell"]["argu"]=array("[","-e","\${target}","]",";","then","echo","\${target}","found",";","else","echo","\${target}","not founnd",";","fi",";");
|
| 4184 |
$conf["external::callShell"]["argu"]=array("if","[","-e","\${target}","]",";","then","echo","found",";","else","echo","not founnd",";","fi",";");
|
4186 |
$conf["external::callShell"]["argu"]=array("[","-e",$target,"]",";","then","echo","found",";","else","echo","not founnd",";","fi",";");
|
| 4185 |
#$conf["enablePrintDescription"],字串,是否要印出$conf["printDescription"]的內容,"true"代表要,"false"代表不要,預設為"false".
|
4187 |
#$conf["enablePrintDescription"],字串,是否要印出$conf["printDescription"]的內容,"true"代表要,"false"代表不要,預設為"false".
|
| 4186 |
#$conf["enablePrintDescription"]="true";
|
4188 |
#$conf["enablePrintDescription"]="true";
|
| 4187 |
#$conf["printDescription"],字串,執行該外部程式前要印出來的的文字,預設為$conf["command"]的內容.
|
4189 |
#$conf["printDescription"],字串,執行該外部程式前要印出來的的文字,預設為$conf["command"]的內容.
|
| 4188 |
#$conf["printDescription"]="";
|
4190 |
#$conf["printDescription"]="";
|
| 4189 |
#$conf["escapeshellarg"],字串,是否要啟用過濾參數,用了比較安全,但可能會出錯,"true"為啟用,"false"為不啟用,預設為"false".
|
4191 |
#$conf["escapeshellarg"],字串,是否要啟用過濾參數,用了比較安全,但可能會出錯,"true"為啟用,"false"為不啟用,預設為"false".
|
| Line 4244... |
Line 4246... |
| 4244 |
#回傳結果
|
4246 |
#回傳結果
|
| 4245 |
return $result;
|
4247 |
return $result;
|
| 4246 |
|
4248 |
|
| 4247 |
}#if end
|
4249 |
}#if end
|
| 4248 |
|
4250 |
|
| - |
|
4251 |
#debug
|
| - |
|
4252 |
#var_dump(__LINE__,$callShell);
|
| - |
|
4253 |
|
| 4249 |
#儲存要執行的指令
|
4254 |
#儲存要執行的指令
|
| 4250 |
$result["cmdStr"]=$callShell["cmd"];
|
4255 |
$result["cmdStr"]=$callShell["cmd"];
|
| 4251 |
|
4256 |
|
| 4252 |
#用陣列儲存的指令與參數資訊
|
4257 |
#用陣列儲存的指令與參數資訊
|
| 4253 |
$result["escapedCmdArray"]=$callShell["noEscaped"];
|
4258 |
$result["escapedCmdArray"]=$callShell["noEscaped"];
|
| Line 4301... |
Line 4306... |
| 4301 |
$result["error"]=$callShell;
|
4306 |
$result["error"]=$callShell;
|
| 4302 |
|
4307 |
|
| 4303 |
#回傳結果
|
4308 |
#回傳結果
|
| 4304 |
return $result;
|
4309 |
return $result;
|
| 4305 |
|
4310 |
|
| 4306 |
}#function checkFileExist Exist
|
4311 |
}#function checkFileExist end
|
| 4307 |
|
4312 |
|
| 4308 |
/*
|
4313 |
/*
|
| 4309 |
#函式說明:
|
4314 |
#函式說明:
|
| 4310 |
#透過lsblk指令的輸出取得已經掛載的blk.
|
4315 |
#透過lsblk指令的輸出取得已經掛載的blk.
|
| 4311 |
#回傳結果:
|
4316 |
#回傳結果:
|
| Line 7457... |
Line 7462... |
| 7457 |
#用shell檢查檔案是否存在,可以指定查詢時用的身份.
|
7462 |
#用shell檢查檔案是否存在,可以指定查詢時用的身份.
|
| 7458 |
#回傳的結果:
|
7463 |
#回傳的結果:
|
| 7459 |
#$result["status"],執行是否成功,"true"代表成功,"false"代表失敗.
|
7464 |
#$result["status"],執行是否成功,"true"代表成功,"false"代表失敗.
|
| 7460 |
#$result["function"],當前執行的函式名稱.
|
7465 |
#$result["function"],當前執行的函式名稱.
|
| 7461 |
#$result["error"],錯誤訊息陣列.
|
7466 |
#$result["error"],錯誤訊息陣列.
|
| 7462 |
#$result["founded"],"true"代表有找到檔案,"false"代表沒有找到檔案.
|
7467 |
#$result["founded"],"true"代表有找到檔案,"false"代表沒有找到檔案,"?"代表沒有執行指令.
|
| - |
|
7468 |
#$result["cmdStr"],查詢檔案是否存在的指令與參數字串.
|
| - |
|
7469 |
#$result["escapedCmdArray"],陣列,儲存重新排序過且已經escape過的指令(key為"cmd")與參數(key為"argu")與兩者組合的一維陣列(key為"array").
|
| 7463 |
#必填參數:
|
7470 |
#必填參數:
|
| 7464 |
#$conf["fileName"],字串,要檢查的檔案名稱.
|
7471 |
#$conf["fileName"],字串,要檢查的檔案名稱.
|
| 7465 |
$conf["cmd::checkFileExist"]["fileName"]=$conf["file"];
|
7472 |
$conf["cmd::checkFileExist"]["fileName"]=$conf["file"];
|
| 7466 |
#可省略參數:
|
7473 |
#可省略參數:
|
| 7467 |
#$conf["username"],字串,要用哪個身份來檢查檔案是否存在,預設不使用.
|
7474 |
#$conf["username"],字串,要用哪個身份來檢查檔案是否存在,預設不使用.
|
| Line 7473... |
Line 7480... |
| 7473 |
#備註:
|
7480 |
#備註:
|
| 7474 |
#該函式若使用可省略參數,則無法在web環境下運行
|
7481 |
#該函式若使用可省略參數,則無法在web環境下運行
|
| 7475 |
$checkFileExist=cmd::checkFileExist($conf["cmd::checkFileExist"]);
|
7482 |
$checkFileExist=cmd::checkFileExist($conf["cmd::checkFileExist"]);
|
| 7476 |
unset($conf["cmd::checkFileExist"]);
|
7483 |
unset($conf["cmd::checkFileExist"]);
|
| 7477 |
|
7484 |
|
| - |
|
7485 |
#debug
|
| - |
|
7486 |
#var_dump(__LINE__,$checkFileExist);
|
| - |
|
7487 |
|
| 7478 |
#如果檢查檔案是否存在失敗
|
7488 |
#如果檢查檔案是否存在失敗
|
| 7479 |
if($checkFileExist["status"]==="false"){
|
7489 |
if($checkFileExist["status"]==="false"){
|
| 7480 |
|
7490 |
|
| 7481 |
#設置執行不正常
|
7491 |
#設置執行不正常
|
| 7482 |
$result["status"]="false";
|
7492 |
$result["status"]="false";
|
| Line 7526... |
Line 7536... |
| 7526 |
#$conf["enablePrintDescription"],字串陣列,執行各個$conf["command"]時是否要印出$conf["printDescription"]的內容,"true"代表要,"false"代表不要,其數量須與$conf["command"]的元素數量相同,若只有一個元素,則代表是每個$conf["command"]執行時都用此參數.
|
7536 |
#$conf["enablePrintDescription"],字串陣列,執行各個$conf["command"]時是否要印出$conf["printDescription"]的內容,"true"代表要,"false"代表不要,其數量須與$conf["command"]的元素數量相同,若只有一個元素,則代表是每個$conf["command"]執行時都用此參數.
|
| 7527 |
#$conf["enablePrintDescription"]=array("false");
|
7537 |
#$conf["enablePrintDescription"]=array("false");
|
| 7528 |
#$conf["printDescription"],字串陣列,執行各個$conf["command"]前要印出來的的文字,預設為$conf["command"]的內容,其數量須與$conf["command"]的元素數量相同,若只有一個元素,則代表是每個$conf["command"]執行時都用此參數.
|
7538 |
#$conf["printDescription"],字串陣列,執行各個$conf["command"]前要印出來的的文字,預設為$conf["command"]的內容,其數量須與$conf["command"]的元素數量相同,若只有一個元素,則代表是每個$conf["command"]執行時都用此參數.
|
| 7529 |
#$conf["printDescription"]=array("");
|
7539 |
#$conf["printDescription"]=array("");
|
| 7530 |
#$conf["escapeshellarg"],字串陣列,執行各個$conf["command"]時是否要啟用過濾參數,用了比較安全,但可能會出錯,"true"為啟用,"false"為不啟用,預設為"false",其數量須與$conf["command"]的元素數量相同,若只有一個元素,則代表是每個$conf["command"]執行時都用此參數.
|
7540 |
#$conf["escapeshellarg"],字串陣列,執行各個$conf["command"]時是否要啟用過濾參數,用了比較安全,但可能會出錯,"true"為啟用,"false"為不啟用,預設為"false",其數量須與$conf["command"]的元素數量相同,若只有一個元素,則代表是每個$conf["command"]執行時都用此參數.
|
| 7531 |
$conf["external::callShell"]["escapeshellarg"]=array("true");
|
7541 |
$conf["external::callShellMulti"]["escapeshellarg"]=array("true","true","true");
|
| 7532 |
#$conf["username"],陣列字串,每個指令要用什麼使用者來執行,預設為執行php的使用者,該參數不適用於apache環境.
|
7542 |
#$conf["username"],陣列字串,每個指令要用什麼使用者來執行,預設為執行php的使用者,該參數不適用於apache環境.
|
| 7533 |
$conf["external::callShell"]["username"]=$conf["username"];
|
7543 |
$conf["external::callShellMulti"]["username"]=array($conf["username"],$conf["username"],$conf["username"]);
|
| 7534 |
#$conf["password"],陣列字串,每個指令與$conf["username"]搭配的使用者密碼,預設不使用密碼,該參數不適用於apache環境.
|
7544 |
#$conf["password"],陣列字串,每個指令與 $conf["username"] 搭配的使用者密碼,預設不使用密碼,該參數不適用於apache環境.
|
| 7535 |
$conf["external::callShell"]["password"]=$validPasswd;
|
7545 |
$conf["external::callShellMulti"]["password"]=array($validPasswd,$validPasswd,$validPasswd);
|
| 7536 |
#$conf["useScript"],字串,每個指令的執行是否要啟用Linux的script指令來記錄輸出,"true"代表要;"false"代表不要,預設為"false".
|
7546 |
#$conf["useScript"],字串,每個指令的執行是否要啟用Linux的script指令來記錄輸出,"true"代表要;"false"代表不要,預設為"false".
|
| 7537 |
#$conf["useScript"]="";
|
7547 |
#$conf["useScript"]="";
|
| 7538 |
#$conf["logFilePath"],字串,當 $conf["useScript"] 為 "true" 時,輸出的內容要暫存到哪裡,預設為 ".qbpwcf_tmp/external/callShell/".
|
7548 |
#$conf["logFilePath"],字串,當 $conf["useScript"] 為 "true" 時,輸出的內容要暫存到哪裡,預設為 ".qbpwcf_tmp/external/callShell/".
|
| 7539 |
#$conf["logFilePath"]=".qbpwcf_tmp/external/callShell/";
|
7549 |
#$conf["logFilePath"]=".qbpwcf_tmp/external/callShell/";
|
| 7540 |
#$conf["inBackGround"],字串,每個指令的執行是否要在背景執行,且不會等待程式執行結束再執行下一個指令,"true"代表是,"false"代表不要,預設為"false",如果$conf["command"]有用";"區隔的多個指令將會出錯.
|
7550 |
#$conf["inBackGround"],字串,每個指令的執行是否要在背景執行,且不會等待程式執行結束再執行下一個指令,"true"代表是,"false"代表不要,預設為"false",如果$conf["command"]有用";"區隔的多個指令將會出錯.
|
| Line 7548... |
Line 7558... |
| 7548 |
#備註:
|
7558 |
#備註:
|
| 7549 |
#不是所有指令都能用apache的身份執行,目前已知java,javac指令無法執行.
|
7559 |
#不是所有指令都能用apache的身份執行,目前已知java,javac指令無法執行.
|
| 7550 |
$callShellMulti=external::callShellMulti($conf["external::callShellMulti"]);
|
7560 |
$callShellMulti=external::callShellMulti($conf["external::callShellMulti"]);
|
| 7551 |
unset($conf["external::callShellMulti"]);
|
7561 |
unset($conf["external::callShellMulti"]);
|
| 7552 |
|
7562 |
|
| - |
|
7563 |
#debug
|
| - |
|
7564 |
#var_dump(__LINE__,$callShellMulti);
|
| - |
|
7565 |
|
| 7553 |
#如果複製檔案失敗
|
7566 |
#如果複製檔案失敗
|
| 7554 |
if($callShellMulti["status"]==="false"){
|
7567 |
if($callShellMulti["status"]==="false"){
|
| 7555 |
|
7568 |
|
| 7556 |
#設置執行不正常
|
7569 |
#設置執行不正常
|
| 7557 |
$result["status"]="false";
|
7570 |
$result["status"]="false";
|