Subversion Repositories qbpwcf-lib(archive)

Rev

Rev 929 | Rev 937 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 929 Rev 935
Line 41... Line 41...
41
 
41
 
42
	#help
42
	#help
43
	echo basename($_SERVER["PHP_SELF"])." is a program to install QBPWCF.".PHP_EOL;
43
	echo basename($_SERVER["PHP_SELF"])." is a program to install QBPWCF.".PHP_EOL;
44
	echo basename($_SERVER["PHP_SELF"])." usage:".PHP_EOL;
44
	echo basename($_SERVER["PHP_SELF"])." usage:".PHP_EOL;
45
	echo "If run it without any argument, QBPWCF will be installed defaultly".PHP_EOL;
45
	echo "If run it without any argument, QBPWCF will be installed defaultly".PHP_EOL;
46
	echo "--libOfRootPath path where QBPWCF to put. Default is /usr/lib".PHP_EOL;
46
	echo "--libOfRootPath path where QBPWCF to put. Default is /".PHP_EOL;
47
	echo "--name folder name where QBPWCF to put inside. Default is qbpwcf".PHP_EOL;
47
	echo "--name folder name where QBPWCF to put inside. Default is qbpwcf".PHP_EOL;
48
	echo "--mode cp/link, default is link".PHP_EOL;
48
	echo "--mode cp/link, default is link".PHP_EOL;
49
	echo "\tcp means copy and overwrite to installation path".PHP_EOL;
49
	echo "\tcp means copy and overwrite to installation path".PHP_EOL;
50
	echo "\tlink means create a softlink from current path to installation path".PHP_EOL;
50
	echo "\tlink means create a softlink from current path to installation path".PHP_EOL;
51
	echo "--configUrl ur, specify url to get config, default is https://config.qbpwcf.org".PHP_EOL;
51
	echo "--configUrl ur, specify url to get config, default is https://config.qbpwcf.org".PHP_EOL;
Line 182... Line 182...
182
	exit(1);
182
	exit(1);
183
 
183
 
184
	}#if end
184
	}#if end
185
 
185
 
186
#預設的套件安裝位置
186
#預設的套件安裝位置
187
$libOfRootPath="/usr/lib/";
187
$libOfRootPath="/";
188
 
188
 
189
#預設的套件資料夾名稱
189
#預設的套件資料夾名稱
190
$name="qbpwcf";
190
$name="qbpwcf";
191
 
191
 
192
#預設運作模式為 "link" 亦即建立軟連結
192
#預設運作模式為 "link" 亦即建立軟連結
Line 509... Line 509...
509
	#$result["content"],軟連結的資訊.
509
	#$result["content"],軟連結的資訊.
510
	#必填參數:
510
	#必填參數:
511
	#$conf["fileArgu"],字串,變數__FILE__的內容.
511
	#$conf["fileArgu"],字串,變數__FILE__的內容.
512
	$conf["fileArgu"]=__FILE__;
512
	$conf["fileArgu"]=__FILE__;
513
	#$conf["linkTo"],字串,軟連結要指向哪邊.
513
	#$conf["linkTo"],字串,軟連結要指向哪邊.
514
	$conf["linkTo"]="usr/lib/qbpwcf/allInOneForCI.php";
514
	$conf["linkTo"]=$libOfRootPath."usr/lib/qbpwcf/allInOneForCI.php";
515
	#可省略參數:
515
	#可省略參數:
516
	#$conf["path"],字串,軟連結要放在哪邊,預設為當前位置.
516
	#$conf["path"],字串,軟連結要放在哪邊,預設為當前位置.
517
	$conf["path"]="usr/lib/qbpwcf";
517
	$conf["path"]=$libOfRootPath."usr/lib/qbpwcf";
518
	#$conf["name"],字串,軟連結的名稱,預設為 "linkTo" 參數的檔案或目錄名稱.
518
	#$conf["name"],字串,軟連結的名稱,預設為 "linkTo" 參數的檔案或目錄名稱.
519
	$conf["name"]="allInOne.php";
519
	$conf["name"]="allInOne.php";
520
	#$conf["overWrite"],字串,"true"代表要移除既有的項目名稱,來重新建立軟連結;預設為"false"不進行處理.
520
	#$conf["overWrite"],字串,"true"代表要移除既有的項目名稱,來重新建立軟連結;預設為"false"不進行處理.
521
	$conf["overWrite"]="true";
521
	$conf["overWrite"]="true";
522
	#參考資料:
522
	#參考資料:
Line 578... Line 578...
578
#$result["function"],當前執行的函式名稱.
578
#$result["function"],當前執行的函式名稱.
579
#必填參數:
579
#必填參數:
580
#$conf["mode"],字串,提示輸入的文字描述,$conf["commentsArray"][$i]代表第($+1)行的描述.
580
#$conf["mode"],字串,提示輸入的文字描述,$conf["commentsArray"][$i]代表第($+1)行的描述.
581
$conf["mode"]="+x";
581
$conf["mode"]="+x";
582
#$conf["target"],字串,需要變更權限的目標.
582
#$conf["target"],字串,需要變更權限的目標.
583
$conf["target"]="usr/bin";
583
$conf["target"]=$libOfRootPath."usr/bin";
584
#可省略參數:
584
#可省略參數:
585
#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
585
#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
586
$conf["recursive"]="true";
586
$conf["recursive"]="true";
587
#參考資料:
587
#參考資料:
588
#無.
588
#無.
Line 645... Line 645...
645
#$result["function"],當前執行的函式名稱.
645
#$result["function"],當前執行的函式名稱.
646
#必填參數:
646
#必填參數:
647
#$conf["mode"],字串,提示輸入的文字描述,$conf["commentsArray"][$i]代表第($+1)行的描述.
647
#$conf["mode"],字串,提示輸入的文字描述,$conf["commentsArray"][$i]代表第($+1)行的描述.
648
$conf["mode"]="777";
648
$conf["mode"]="777";
649
#$conf["target"],字串,需要變更權限的目標.
649
#$conf["target"],字串,需要變更權限的目標.
650
$conf["target"]="usr/lib/qbpwcf/db";
650
$conf["target"]=$libOfRootPath."usr/lib/qbpwcf/db";
651
#可省略參數:
651
#可省略參數:
652
#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
652
#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
653
#$conf["recursive"]="";
653
#$conf["recursive"]="";
654
#參考資料:
654
#參考資料:
655
#無.
655
#無.
Line 701... Line 701...
701
#break point
701
#break point
702
var_dump($chmod);
702
var_dump($chmod);
703
exit;
703
exit;
704
*/
704
*/
705
	
705
	
706
#依照參數設定 $rootPath.$name."/etc/config.php
706
#依照參數設定 etc/qbpwcf/config.php
707
#函式說明:
707
#函式說明:
708
#建立軟連結.
708
#建立軟連結.
709
#回傳結果:
709
#回傳結果:
710
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
710
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
711
#$result["error"],錯誤訊息.
711
#$result["error"],錯誤訊息.
Line 713... Line 713...
713
#$result["content"],軟連結的資訊.
713
#$result["content"],軟連結的資訊.
714
#必填參數:
714
#必填參數:
715
#$conf["fileArgu"],字串,變數__FILE__的內容.
715
#$conf["fileArgu"],字串,變數__FILE__的內容.
716
$conf["fileArgu"]=__FILE__;
716
$conf["fileArgu"]=__FILE__;
717
#$conf["file"],字串,要更新的檔案位置與名稱.
717
#$conf["file"],字串,要更新的檔案位置與名稱.
718
$conf["file"]="etc/qbpwcf/config.php";
718
$conf["file"]=$libOfRootPath."etc/qbpwcf/config.php";
719
#可省略參數:
719
#可省略參數:
720
#$conf["overWriteWith"],字串陣列,要置換成什麼樣的內容,每個元素代表一行內容.
720
#$conf["overWriteWith"],字串陣列,要置換成什麼樣的內容,每個元素代表一行內容.
721
$conf["overWriteWith"][]="<?php";
721
$conf["overWriteWith"][]="<?php";
722
$conf["overWriteWith"][]="";
722
$conf["overWriteWith"][]="";
723
$conf["overWriteWith"][]="#specify host ip";
723
$conf["overWriteWith"][]="#specify host ip";
Line 780... Line 780...
780
	#異常結束執行
780
	#異常結束執行
781
	exit(1);
781
	exit(1);
782
 
782
 
783
	}#if end
783
	}#if end
784
	
784
	
785
#讓 "qbpwcf/etc/config.php" 可以被大家使用.
785
#讓 "etc/qbpwcf/config.php" 可以被大家使用.
786
#函式說明:
786
#函式說明:
787
#使用 linux 的 chmod 指令來修改目標檔案或目錄的權限.
787
#使用 linux 的 chmod 指令來修改目標檔案或目錄的權限.
788
#回傳結果:
788
#回傳結果:
789
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
789
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
790
#$result["error"],錯誤訊息.
790
#$result["error"],錯誤訊息.
791
#$result["function"],當前執行的函式名稱.
791
#$result["function"],當前執行的函式名稱.
792
#必填參數:
792
#必填參數:
793
#$conf["mode"],字串,提示輸入的文字描述,$conf["commentsArray"][$i]代表第($+1)行的描述.
793
#$conf["mode"],字串,提示輸入的文字描述,$conf["commentsArray"][$i]代表第($+1)行的描述.
794
$conf["mode"]="777";
794
$conf["mode"]="777";
795
#$conf["target"],字串,需要變更權限的目標.
795
#$conf["target"],字串,需要變更權限的目標.
796
$conf["target"]="etc/qbpwcf/config.php";
796
$conf["target"]=$libOfRootPath."etc/qbpwcf/config.php";
797
#可省略參數:
797
#可省略參數:
798
#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
798
#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
799
#$conf["recursive"]="";
799
#$conf["recursive"]="";
800
#參考資料:
800
#參考資料:
801
#無.
801
#無.
Line 841... Line 841...
841
	#異常結束執行
841
	#異常結束執行
842
	exit(1);
842
	exit(1);
843
 
843
 
844
	}#if end
844
	}#if end
845
 
845
 
846
#依照參數設定 "qbpwcf/usr/local/etc/backupDb.conf"
846
#依照參數設定 "etc/backupDb.conf"
847
#函式說明:
847
#函式說明:
848
#建立軟連結.
848
#建立軟連結.
849
#回傳結果:
849
#回傳結果:
850
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
850
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
851
#$result["error"],錯誤訊息.
851
#$result["error"],錯誤訊息.
Line 853... Line 853...
853
#$result["content"],軟連結的資訊.
853
#$result["content"],軟連結的資訊.
854
#必填參數:
854
#必填參數:
855
#$conf["fileArgu"],字串,變數__FILE__的內容.
855
#$conf["fileArgu"],字串,變數__FILE__的內容.
856
$conf["fileArgu"]=__FILE__;
856
$conf["fileArgu"]=__FILE__;
857
#$conf["file"],字串,要更新的檔案位置與名稱.
857
#$conf["file"],字串,要更新的檔案位置與名稱.
858
$conf["file"]="etc/qbpwcf/backupDb.conf";
858
$conf["file"]=$libOfRootPath."etc/qbpwcf/backupDb.conf";
859
#可省略參數:
859
#可省略參數:
860
#$conf["overWriteWith"],字串陣列,要置換成什麼樣的內容,每個元素代表一行內容.
860
#$conf["overWriteWith"],字串陣列,要置換成什麼樣的內容,每個元素代表一行內容.
861
$conf["overWriteWith"]=array();
861
$conf["overWriteWith"]=array();
862
$conf["overWriteWith"][]="<?php";
862
$conf["overWriteWith"][]="<?php";
863
$conf["overWriteWith"][]="#資料庫連線帳號";
863
$conf["overWriteWith"][]="#資料庫連線帳號";
Line 936... Line 936...
936
#$result["content"],軟連結的資訊.
936
#$result["content"],軟連結的資訊.
937
#必填參數:
937
#必填參數:
938
#$conf["fileArgu"],字串,變數__FILE__的內容.
938
#$conf["fileArgu"],字串,變數__FILE__的內容.
939
$conf["fileArgu"]=__FILE__;
939
$conf["fileArgu"]=__FILE__;
940
#$conf["file"],字串,要更新的檔案位置與名稱.
940
#$conf["file"],字串,要更新的檔案位置與名稱.
941
$conf["file"]="etc/qbpwcf/qbpwcf.conf.xml";
941
$conf["file"]=$libOfRootPath."etc/qbpwcf/qbpwcf.conf.xml";
942
#可省略參數:
942
#可省略參數:
943
#$conf["overWriteWith"],字串陣列,要置換成什麼樣的內容,每個元素代表一行內容.
943
#$conf["overWriteWith"],字串陣列,要置換成什麼樣的內容,每個元素代表一行內容.
944
$conf["overWriteWith"]=array();
944
$conf["overWriteWith"]=array();
945
$conf["overWriteWith"][]="<?xml version=\"1.0\"?>";
945
$conf["overWriteWith"][]="<?xml version=\"1.0\"?>";
946
$conf["overWriteWith"][]="<root></root>";
946
$conf["overWriteWith"][]="<root></root>";
Line 1005... Line 1005...
1005
#$result["function"],當前執行的函式名稱.
1005
#$result["function"],當前執行的函式名稱.
1006
#必填參數:
1006
#必填參數:
1007
#$conf["mode"],字串,提示輸入的文字描述,$conf["commentsArray"][$i]代表第($+1)行的描述.
1007
#$conf["mode"],字串,提示輸入的文字描述,$conf["commentsArray"][$i]代表第($+1)行的描述.
1008
$conf["mode"]="777";
1008
$conf["mode"]="777";
1009
#$conf["target"],字串,需要變更權限的目標.
1009
#$conf["target"],字串,需要變更權限的目標.
1010
$conf["target"]="etc/qbpwcf/qbpwcf.conf.xml";
1010
$conf["target"]=$libOfRootPath."etc/qbpwcf/qbpwcf.conf.xml";
1011
#可省略參數:
1011
#可省略參數:
1012
#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
1012
#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
1013
#$conf["recursive"]="";
1013
#$conf["recursive"]="";
1014
#參考資料:
1014
#參考資料:
1015
#無.
1015
#無.
Line 1184... Line 1184...
1184
#$result["function"],當前執行的函式名稱.
1184
#$result["function"],當前執行的函式名稱.
1185
#必填參數:
1185
#必填參數:
1186
#$conf["mode"],字串,提示輸入的文字描述,$conf["commentsArray"][$i]代表第($+1)行的描述.
1186
#$conf["mode"],字串,提示輸入的文字描述,$conf["commentsArray"][$i]代表第($+1)行的描述.
1187
$conf["mode"]="640";
1187
$conf["mode"]="640";
1188
#$conf["target"],字串,需要變更權限的目標.
1188
#$conf["target"],字串,需要變更權限的目標.
1189
$conf["target"]="etc/systemd/system";
1189
$conf["target"]=$libOfRootPath."etc/systemd/system";
1190
#可省略參數:
1190
#可省略參數:
1191
#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
1191
#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
1192
$conf["recursive"]="true";
1192
$conf["recursive"]="true";
1193
#$conf["excludeSelf"],字串,預設為"false"代表不處理;若為"true"則會排除目標自己(資料夾).
1193
#$conf["excludeSelf"],字串,預設為"false"代表不處理;若為"true"則會排除目標自己(資料夾).
1194
$conf["excludeSelf"]="true";
1194
$conf["excludeSelf"]="true";
Line 1236... Line 1236...
1236
	#異常結束執行
1236
	#異常結束執行
1237
	exit(1);
1237
	exit(1);
1238
 
1238
 
1239
	}#if end
1239
	}#if end
1240
 
1240
 
1241
/*
-
 
1242
#break point
-
 
1243
var_dump($chmod);
-
 
1244
exit;
-
 
1245
*/
-
 
1246
 
-
 
1247
#判斷 $mode
1241
#如果 $whiteIp 不為空
1248
switch($mode){
1242
if(count($whiteIp)>0){
1249
 
1243
 
-
 
1244
	#如果有 ip-blockerd.service 存在
-
 
1245
	#函式說明:
-
 
1246
	#檢查多個檔案與資料夾是否存在.
-
 
1247
	#回傳的結果:
-
 
1248
	#$result["status"],執行正常與否,"true"代表正常,"false"代表不正常.
-
 
1249
	#$result["error"],錯誤訊息陣列.
-
 
1250
	#$resutl["function"],當前執行的涵式名稱.
-
 
1251
	#$result["argu"],使用的參數.
-
 
1252
	#$result["allExist"],所有檔案皆存在的識別,"true"代表皆存在,"false"代表沒有全部都存在.
-
 
1253
	#$result["varName"][$i],爲第$i個資料夾或檔案的路徑與名稱。
-
 
1254
	#$result["varNameFullPath"][$i],爲第$i個資料夾或檔案的完整檔案系統路徑與名稱,如果不存在則代表路徑是網址.
-
 
1255
	#$result["varNameWebPath"][$i],為第$i個資料夾或檔案的網址,若"web"參數為"true",才會有該內容.
-
 
1256
	#$result["varExist"][$i],爲第$i個資料夾或檔案是否存在,"true"代表存在,"false"代表不存在。
-
 
1257
	#必填參數:
-
 
1258
	#$conf["fileArray"],陣列字串,要檢查是否存在的檔案有哪些,須爲一維陣列數值。
-
 
1259
	$conf["fileArray"]=array("./etc/system/ip-blockerd.service");
-
 
1260
	#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
1261
	$conf["fileArgu"]=__FILE__;
-
 
1262
	#可省略參數:
1250
	#如果是 "cp" mode
1263
	#$conf["disableWebSearch"],"字串",是否取消「當檔案找不到時,改用catchWebContent類別的wget函數來檢查檔案是否存在於網路上」的功能,"false"不取消,若要取消該功能請設為"true",若抓到的內容為空字串則會視為檔案不存在,預設為"true".
-
 
1264
	$conf["disableWebSearch"]="true";
-
 
1265
	#$conf["userDir"],字串,網頁是否置放於家目錄底下,"true"為是,"false"為不是,預設為"true".
-
 
1266
	$conf["userDir"]="false";
-
 
1267
	#$conf["web"],字串,檔案是放在web就是"true",反之為檔案系統"false",預設為"true".
-
 
1268
	$conf["web"]="false";
-
 
1269
	#參考資料:
-
 
1270
	#http://php.net/manual/en/function.file-exists.php
-
 
1271
	#http://php.net/manual/en/control-structures.foreach.php
-
 
1272
	#備註:
-
 
1273
	#函數file_exists檢查的路徑為檔案系統的路徑
-
 
1274
	#$result["varName"][$i]結果未實作
-
 
1275
	$checkMultiFileExist=fileAccess::checkMultiFileExist($conf);
1251
	case "cp":
1276
	unset($conf);
-
 
1277
	
-
 
1278
	#如果執行失敗
-
 
1279
	if($checkMultiFileExist["status"]==="false"){
1252
	
1280
	
1253
		#函式說明:
1281
		#函式說明:
1254
		#建立資料夾,若要建立的資料夾所屬路徑不存在,則會自動嘗試建立,建立後的資料夾也可指定權限,要設定權限,必須為資料夾的擁有者.
-
 
-
 
1282
		#撰寫log
1255
		#回傳結果:
1283
		#回傳結果:
1256
		#$result["status"],"true"爲建立成功,"false"爲建立失敗.
1284
		#$result["status"],狀態,"true"或"false".
1257
		#$result["error"],錯誤訊息陣列
1285
		#$result["error"],錯誤訊息陣列.
1258
		#$result["warning"],警告訊息陣列
1286
		#$result["function"],當前函式的名稱.
1259
		#$result["argu"],使用的參數.
1287
		#$result["argu"],使用的參數.
1260
		#$result["content"],建立的目錄路徑.
-
 
1261
		#必填參數:
1288
		#必填參數:
1262
		#$conf["dirPositionAndName"]="";#新建的位置與名稱
1289
		#$conf["path"],字串,log檔案的路徑與名稱.
-
 
1290
		$conf["path"]=$logFile;
-
 
1291
		#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
1263
		$conf["dirPositionAndName"]=$rootPath;
1292
		$conf["content"]=$createMultiLinkInDir;
1264
		#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1293
		#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1265
		$conf["fileArgu"]=__FILE__;
1294
		$conf["fileArgu"]=__FILE__;
1266
		#可省略參數:
1295
		#可省略參數:
1267
		#$conf["dirPermission"],字串,新建資料夾的權限設定,預設爲0770,亦即擁有者,同群組者可以讀,寫,存取,其他人僅能存取.
-
 
1268
		#$conf["dirPermission"]="";
-
 
1269
		#$conf["web"],"false"代表在檔案系統環境,"true"代表在網頁稀系統環境.
1296
		#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1270
		#$conf["web"]="false";
1297
		#$conf["rewrite"]="false";
1271
		#參考資料:
1298
		#參考資料:
1272
		#mkdir=>http://php.net/manual/en/function.mkdir.php
-
 
1273
		#chmod=>http://php.net/manual/en/function.chmod.php
1299
		#無.
1274
		#備註:
1300
		#備註:
1275
		#無.
1301
		#無.
1276
		$createFolderAfterCheck=fileAccess::createFolderAfterCheck($conf);
-
 
1277
		unset($conf);
1302
		$record=logs::record($conf);
1278
 
1303
		
1279
		#如果執行失敗
1304
		#如果執行失敗
1280
		if($createFolderAfterCheck["status"]==="false"){
1305
		if($record["status"]==="false"){
-
 
1306
		
-
 
1307
			#印出結果
-
 
1308
			var_dump($record);
-
 
1309
			
-
 
1310
			}#if end
-
 
1311
			
-
 
1312
		#異常結束執行
-
 
1313
		exit(1);
1281
 
1314
 
-
 
1315
		}#if end
-
 
1316
		
-
 
1317
	#如果存在
-
 
1318
	if($checkMultiFileExist["allExist"]==="true"){
-
 
1319
	
-
 
1320
		#啟動服務的關鍵字
-
 
1321
		$serviceStartKeyWord="ExecStart=/usr/bin/ipBlockerd.php";
-
 
1322
		
-
 
1323
		#重新啟動服務的關鍵字
-
 
1324
		$serviceRestartKeyWord="ExecReload=killall ipBlockerd.php; sleep 10; ipBlockerd.php";
-
 
1325
		
-
 
1326
		#函式說明:
-
 
1327
		#將一維陣列轉換為用特定符號間隔的字串,ex:array("1","2","3") to "a;b;c;".
-
 
1328
		#回傳的結果:
-
 
1329
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
1330
		#$result["function"],當前執行的function名稱
-
 
1331
		#$result["error"],錯誤訊息陣列.
-
 
1332
		#$result["content"],處理好的字串.
-
 
1333
		#$result["argu"],使用的參數.
-
 
1334
		#必填參數:
-
 
1335
		#$conf["inputArray"],字串陣列,要轉成字串的一維陣列.
-
 
1336
		$conf["inputArray"]=$whiteIp;
-
 
1337
		#可省略參數:
-
 
1338
		#$conf["spiltSymbol"],字串,用來區隔字串的符號,預設為;
-
 
1339
		$conf["spiltSymbol"]=" --exclude ";
-
 
1340
		#$conf["skipEnd"],字串,結尾是否不要加上符號,預設為"false",要加上符號,"true"代表不要加上符號。
-
 
1341
		$conf["skipEnd"]="true";
-
 
1342
		#$conf["spiltSymbolAtStart"],字串,是否要在開頭加上spiltSymbol,預設為"false",代表不要;反之為“true”.
-
 
1343
		$conf["spiltSymbolAtStart"]="true";
-
 
1344
		#參考資料:
-
 
1345
		#無.
-
 
1346
		#備註:
-
 
1347
		#無.
-
 
1348
		$arrayToString=arrays::arrayToString($conf);
-
 
1349
		unset($conf);
-
 
1350
	
-
 
1351
		#如果執行出錯
-
 
1352
		if($arrayToString["status"]==="false"){
-
 
1353
	
1282
			#函式說明:
1354
			#函式說明:
1283
			#撰寫log
1355
			#撰寫log
1284
			#回傳結果:
1356
			#回傳結果:
1285
			#$result["status"],狀態,"true"或"false".
1357
			#$result["status"],狀態,"true"或"false".
1286
			#$result["error"],錯誤訊息陣列.
1358
			#$result["error"],錯誤訊息陣列.
Line 1288... Line 1360...
1288
			#$result["argu"],使用的參數.
1360
			#$result["argu"],使用的參數.
1289
			#必填參數:
1361
			#必填參數:
1290
			#$conf["path"],字串,log檔案的路徑與名稱.
1362
			#$conf["path"],字串,log檔案的路徑與名稱.
1291
			$conf["path"]=$logFile;
1363
			$conf["path"]=$logFile;
1292
			#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
1364
			#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
1293
			$conf["content"]=$createFolderAfterCheck;
1365
			$conf["content"]=$arrayToString;
1294
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1366
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1295
			$conf["fileArgu"]=__FILE__;
1367
			$conf["fileArgu"]=__FILE__;
1296
			#可省略參數:
1368
			#可省略參數:
1297
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1369
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1298
			#$conf["rewrite"]="false";
1370
			#$conf["rewrite"]="false";
Line 1305... Line 1377...
1305
			#如果執行失敗
1377
			#如果執行失敗
1306
			if($record["status"]==="false"){
1378
			if($record["status"]==="false"){
1307
			
1379
			
1308
				#印出結果
1380
				#印出結果
1309
				var_dump($record);
1381
				var_dump($record);
1310
			
1382
				
1311
				}#if end
1383
				}#if end
1312
				
1384
				
1313
			#異常結束執行
1385
			#異常結束執行
1314
			exit(1);
1386
			exit(1);
1315
 
1387
 
1316
			}#if end
1388
			}#if end
-
 
1389
 
-
 
1390
		#啟動服務的新內容
-
 
1391
		$serviceStartNewContent=$serviceStartKeyWord.$arrayToString["content"];
-
 
1392
 
-
 
1393
		#重新啟動服務的新內容
-
 
1394
		$serviceRestartNewContent=$serviceRestartKeyWord.$arrayToString["content"];
1317
	
1395
	
1318
		#複製套件
1396
		#設置白名單ip
1319
		#函式說明:
1397
		#函式說明:
1320
		#複製檔案、資料夾.
1398
		#更新檔案的內容.
1321
		#回傳結果:
1399
		#回傳結果:
1322
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1400
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1323
		#$result["error"],錯誤訊息.
1401
		#$result["error"],錯誤訊息.
1324
		#$result["function"],當前執行的函式名稱.
1402
		#$result["function"],當前執行的函數名稱.
1325
		#$result["content"],複製好的檔案路徑與名稱.
1403
		#$result["content"],軟連結的資訊.
1326
		#必填參數:
1404
		#必填參數:
1327
		#$conf["file"],字串,檔案的位置與名稱.
1405
		#$conf["fileArgu"],字串,變數__FILE__的內容.
1328
		$conf["file"]="qbpwcf";
-
 
1329
		#$conf["to"],字串,檔案要複製到哪裡.
-
 
1330
		$conf["to"]=$rootPath;
-
 
1331
		#$conf["fileArgu"],字串,__FILE__的內容,預設為當前檔案的位置.
-
 
1332
		$conf["fileArgu"]=__FILE__;
1406
		$conf["fileArgu"]=__FILE__;
-
 
1407
		#$conf["file"],字串,要更新的檔案位置與名稱.
-
 
1408
		$conf["file"]="./etc/systemd/system/ip-blockerd.service";
1333
		#可省略參數:
1409
		#可省略參數:
1334
		#$conf["username"],字串,要以哪個使用者來執行,預設為執行該php程式的使用者.
1410
		#$conf["overWriteWith"],字串陣列,要置換成什麼樣的內容,每個元素代表一行內容.
1335
		#$conf["username"]="";
1411
		#$conf["overWriteWith"]=array();
1336
		#$conf["password"],字串,使用者對應的密碼,預設不使用.
1412
		#$conf["replaceWith"],字串陣列,要將什麼內容置換成什麼內容.
-
 
1413
		$conf["replaceWith"]=array(array($serviceStartKeyWord,$serviceStartNewContent),array($serviceRestartKeyWord,$serviceRestartNewContent));
-
 
1414
		#$conf["replaceLike"],字串,預設為"false",代表要完全符合關鍵字才能進行整行替換;反之為"true".
1337
		#$conf["password"]="";
1415
		$conf["replaceLike"]="true";
-
 
1416
		#$conf["addToTailWhenNoMatch"],字串,預設為"false"不做事;若為"true",則代表若使用 "replaceWith" 參數但沒有符合條件的內容出現,則新增到檔案的尾端.
-
 
1417
		#$conf["addToTailWhenNoMatch"]="false";
-
 
1418
		#$conf["addToTailBeforeThat"],字串,當 "replaceWith" 參數有使用,且 "addToTailWhenNoMatch" 為 "true" 時,若有使用該參數,則會從尾端尋找符合條件的行內容,然後將 沒有符合 "replaceWith" 條件的內容新增在此之前.
-
 
1419
		#$conf["addToTailBeforeThat"]="?\>";
1338
		#參考資料:
1420
		#參考資料:
1339
		#無.
1421
		#無.
1340
		#備註:
1422
		#備註:
1341
		#僅能在命令列環境下運行
1423
		#無.
1342
		$cp=cmd::cp($conf);
1424
		$updateFile=fileAccess::updateFile($conf);
1343
		unset($conf);
1425
		unset($conf);
1344
		
1426
	
1345
		#如果執行失敗
1427
		#如果執行出錯
1346
		if($cp["status"]==="false"){
1428
		if($updateFile["status"]==="false"){
1347
		
1429
	
1348
			#函式說明:
1430
			#函式說明:
1349
			#撰寫log
1431
			#撰寫log
1350
			#回傳結果:
1432
			#回傳結果:
1351
			#$result["status"],狀態,"true"或"false".
1433
			#$result["status"],狀態,"true"或"false".
1352
			#$result["error"],錯誤訊息陣列.
1434
			#$result["error"],錯誤訊息陣列.
Line 1354... Line 1436...
1354
			#$result["argu"],使用的參數.
1436
			#$result["argu"],使用的參數.
1355
			#必填參數:
1437
			#必填參數:
1356
			#$conf["path"],字串,log檔案的路徑與名稱.
1438
			#$conf["path"],字串,log檔案的路徑與名稱.
1357
			$conf["path"]=$logFile;
1439
			$conf["path"]=$logFile;
1358
			#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
1440
			#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
1359
			$conf["content"]=$cp;
1441
			$conf["content"]=$updateFile;
1360
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1442
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1361
			$conf["fileArgu"]=__FILE__;
1443
			$conf["fileArgu"]=__FILE__;
1362
			#可省略參數:
1444
			#可省略參數:
1363
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1445
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1364
			#$conf["rewrite"]="false";
1446
			#$conf["rewrite"]="false";
Line 1373... Line 1455...
1373
			
1455
			
1374
				#印出結果
1456
				#印出結果
1375
				var_dump($record);
1457
				var_dump($record);
1376
				
1458
				
1377
				}#if end
1459
				}#if end
1378
		
1460
				
1379
			#異常結束執行
1461
			#異常結束執行
1380
			exit(1);
1462
			exit(1);
1381
		
1463
 
1382
			}#if end
1464
			}#if end
1383
			
1465
	
1384
		#複製 usr
1466
		}#if end
-
 
1467
 
-
 
1468
	}#if end
-
 
1469
 
-
 
1470
#判斷 $mode
-
 
1471
switch($mode){
-
 
1472
 
-
 
1473
	#如果是 "cp" mode
-
 
1474
	case "cp":
-
 
1475
	
1385
		#函式說明:
1476
		#函式說明:
1386
		#複製檔案、資料夾.
1477
		#建立資料夾,若要建立的資料夾所屬路徑不存在,則會自動嘗試建立,建立後的資料夾也可指定權限,要設定權限,必須為資料夾的擁有者.
1387
		#回傳結果:
1478
		#回傳結果:
1388
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1479
		#$result["status"],"true"爲建立成功,"false"爲建立失敗.
1389
		#$result["error"],錯誤訊息.
1480
		#$result["error"],錯誤訊息陣列
-
 
1481
		#$result["warning"],警告訊息陣列
1390
		#$result["function"],當前執行的函式名稱.
1482
		#$result["argu"],使用的參數.
1391
		#$result["content"],複製好的檔案路徑與名稱.
1483
		#$result["content"],建立的目錄路徑.
1392
		#必填參數:
1484
		#必填參數:
1393
		#$conf["file"],字串,檔案的位置與名稱.
1485
		#$conf["dirPositionAndName"]="";#新建的位置與名稱
1394
		$conf["file"]="usr";
-
 
1395
		#$conf["to"],字串,檔案要複製到哪裡.
-
 
1396
		$conf["to"]=$rootPath;
1486
		$conf["dirPositionAndName"]=$rootPath;
1397
		#$conf["fileArgu"],字串,__FILE__的內容,預設為當前檔案的位置.
1487
		#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1398
		$conf["fileArgu"]=__FILE__;
1488
		$conf["fileArgu"]=__FILE__;
1399
		#可省略參數:
1489
		#可省略參數:
1400
		#$conf["username"],字串,要以哪個使用者來執行,預設為執行該php程式的使用者.
1490
		#$conf["dirPermission"],字串,新建資料夾的權限設定,預設爲0770,亦即擁有者,同群組者可以讀,寫,存取,其他人僅能存取.
1401
		#$conf["username"]="";
1491
		#$conf["dirPermission"]="";
1402
		#$conf["password"],字串,使用者對應的密碼,預設不使用.
1492
		#$conf["web"],"false"代表在檔案系統環境,"true"代表在網頁稀系統環境.
1403
		#$conf["password"]="";
1493
		#$conf["web"]="false";
1404
		#參考資料:
1494
		#參考資料:
-
 
1495
		#mkdir=>http://php.net/manual/en/function.mkdir.php
1405
		#無.
1496
		#chmod=>http://php.net/manual/en/function.chmod.php
1406
		#備註:
1497
		#備註:
1407
		#僅能在命令列環境下運行
1498
		#無.
1408
		$cp=cmd::cp($conf);
1499
		$createFolderAfterCheck=fileAccess::createFolderAfterCheck($conf);
1409
		unset($conf);
1500
		unset($conf);
1410
		
1501
 
1411
		#如果執行失敗
1502
		#如果執行失敗
1412
		if($cp["status"]==="false"){
1503
		if($createFolderAfterCheck["status"]==="false"){
1413
		
1504
 
1414
			#函式說明:
1505
			#函式說明:
1415
			#撰寫log
1506
			#撰寫log
1416
			#回傳結果:
1507
			#回傳結果:
1417
			#$result["status"],狀態,"true"或"false".
1508
			#$result["status"],狀態,"true"或"false".
1418
			#$result["error"],錯誤訊息陣列.
1509
			#$result["error"],錯誤訊息陣列.
Line 1420... Line 1511...
1420
			#$result["argu"],使用的參數.
1511
			#$result["argu"],使用的參數.
1421
			#必填參數:
1512
			#必填參數:
1422
			#$conf["path"],字串,log檔案的路徑與名稱.
1513
			#$conf["path"],字串,log檔案的路徑與名稱.
1423
			$conf["path"]=$logFile;
1514
			$conf["path"]=$logFile;
1424
			#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
1515
			#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
1425
			$conf["content"]=$cp;
1516
			$conf["content"]=$createFolderAfterCheck;
1426
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1517
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1427
			$conf["fileArgu"]=__FILE__;
1518
			$conf["fileArgu"]=__FILE__;
1428
			#可省略參數:
1519
			#可省略參數:
1429
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1520
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1430
			#$conf["rewrite"]="false";
1521
			#$conf["rewrite"]="false";
Line 1437... Line 1528...
1437
			#如果執行失敗
1528
			#如果執行失敗
1438
			if($record["status"]==="false"){
1529
			if($record["status"]==="false"){
1439
			
1530
			
1440
				#印出結果
1531
				#印出結果
1441
				var_dump($record);
1532
				var_dump($record);
1442
				
1533
			
1443
				}#if end
1534
				}#if end
1444
		
1535
				
1445
			#異常結束執行
1536
			#異常結束執行
1446
			exit(1);
1537
			exit(1);
1447
		
1538
 
1448
			}#if end
1539
			}#if end
1449
			
1540
	
1450
		#複製 usr
1541
		#複製 etc
1451
		#函式說明:
1542
		#函式說明:
1452
		#複製檔案、資料夾.
1543
		#複製檔案、資料夾.
1453
		#回傳結果:
1544
		#回傳結果:
1454
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1545
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1455
		#$result["error"],錯誤訊息.
1546
		#$result["error"],錯誤訊息.
Line 1511... Line 1602...
1511
			#異常結束執行
1602
			#異常結束執行
1512
			exit(1);
1603
			exit(1);
1513
		
1604
		
1514
			}#if end
1605
			}#if end
1515
	
1606
	
1516
		break;
-
 
1517
		
-
 
1518
	#如果是 "link" mode
-
 
1519
	case "link":
1607
		#複製 usr
1520
	
-
 
1521
		#函式說明:
1608
		#函式說明:
1522
		#建立軟連結.
1609
		#複製檔案、資料夾.
1523
		#回傳結果:
1610
		#回傳結果:
1524
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1611
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1525
		#$result["error"],錯誤訊息.
1612
		#$result["error"],錯誤訊息.
1526
		#$result["function"],當前執行的函數名稱.
1613
		#$result["function"],當前執行的函式名稱.
1527
		#$result["content"],軟連結的資訊.
1614
		#$result["content"],複製好的檔案路徑與名稱.
1528
		#必填參數:
1615
		#必填參數:
1529
		#$conf["fileArgu"],字串,變數__FILE__的內容.
1616
		#$conf["file"],字串,檔案的位置與名稱.
-
 
1617
		$conf["file"]="usr";
-
 
1618
		#$conf["to"],字串,檔案要複製到哪裡.
-
 
1619
		$conf["to"]=$rootPath;
-
 
1620
		#$conf["fileArgu"],字串,__FILE__的內容,預設為當前檔案的位置.
1530
		$conf["fileArgu"]=__FILE__;
1621
		$conf["fileArgu"]=__FILE__;
1531
		#$conf["linkTo"],字串,軟連結要指向哪邊.
-
 
1532
		$conf["linkTo"]="qbpwcf";
-
 
1533
		#可省略參數:
1622
		#可省略參數:
1534
		#$conf["path"],字串,軟連結要放在哪邊,預設為當前位置.
1623
		#$conf["username"],字串,要以哪個使用者來執行,預設為執行該php程式的使用者.
1535
		$conf["path"]=$rootPath;
-
 
1536
		#$conf["name"],字串,軟連結的名稱,預設為 "linkTo" 參數的檔案或目錄名稱.
-
 
1537
		#$conf["name"]=$name;
1624
		#$conf["username"]="";
1538
		#$conf["overWrite"],字串,"true"代表要移除既有的項目名稱,來重新建立軟連結;預設為"false"不進行處理.
1625
		#$conf["password"],字串,使用者對應的密碼,預設不使用.
1539
		$conf["overWrite"]="true";
1626
		#$conf["password"]="";
1540
		#參考資料:
1627
		#參考資料:
1541
		#無.
1628
		#無.
1542
		#備註:
1629
		#備註:
1543
		#無.
1630
		#僅能在命令列環境下運行
1544
		$createLink=fileAccess::createLink($conf);
1631
		$cp=cmd::cp($conf);
1545
		unset($conf);
1632
		unset($conf);
1546
	
1633
		
1547
		#如果執行失敗
1634
		#如果執行失敗
1548
		if($createLink["status"]==="false"){
1635
		if($cp["status"]==="false"){
1549
 
1636
		
1550
			#函式說明:
1637
			#函式說明:
1551
			#撰寫log
1638
			#撰寫log
1552
			#回傳結果:
1639
			#回傳結果:
1553
			#$result["status"],狀態,"true"或"false".
1640
			#$result["status"],狀態,"true"或"false".
1554
			#$result["error"],錯誤訊息陣列.
1641
			#$result["error"],錯誤訊息陣列.
Line 1556... Line 1643...
1556
			#$result["argu"],使用的參數.
1643
			#$result["argu"],使用的參數.
1557
			#必填參數:
1644
			#必填參數:
1558
			#$conf["path"],字串,log檔案的路徑與名稱.
1645
			#$conf["path"],字串,log檔案的路徑與名稱.
1559
			$conf["path"]=$logFile;
1646
			$conf["path"]=$logFile;
1560
			#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
1647
			#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
1561
			$conf["content"]=$createLink;
1648
			$conf["content"]=$cp;
1562
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1649
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1563
			$conf["fileArgu"]=__FILE__;
1650
			$conf["fileArgu"]=__FILE__;
1564
			#可省略參數:
1651
			#可省略參數:
1565
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1652
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1566
			#$conf["rewrite"]="false";
1653
			#$conf["rewrite"]="false";
Line 1575... Line 1662...
1575
			
1662
			
1576
				#印出結果
1663
				#印出結果
1577
				var_dump($record);
1664
				var_dump($record);
1578
				
1665
				
1579
				}#if end
1666
				}#if end
1580
				
1667
		
1581
			#異常結束執行
1668
			#異常結束執行
1582
			exit(1);
1669
			exit(1);
1583
 
1670
		
1584
			}#if end
1671
			}#if end
1585
	
1672
	
-
 
1673
		break;
-
 
1674
		
-
 
1675
	#如果是 "link" mode
-
 
1676
	case "link":
-
 
1677
	
-
 
1678
		#link /etc/qbpwcf
1586
		#函式說明:
1679
		#函式說明:
1587
		#建立軟連結.
1680
		#建立軟連結.
1588
		#回傳結果:
1681
		#回傳結果:
1589
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1682
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1590
		#$result["error"],錯誤訊息.
1683
		#$result["error"],錯誤訊息.
Line 1592... Line 1685...
1592
		#$result["content"],軟連結的資訊.
1685
		#$result["content"],軟連結的資訊.
1593
		#必填參數:
1686
		#必填參數:
1594
		#$conf["fileArgu"],字串,變數__FILE__的內容.
1687
		#$conf["fileArgu"],字串,變數__FILE__的內容.
1595
		$conf["fileArgu"]=__FILE__;
1688
		$conf["fileArgu"]=__FILE__;
1596
		#$conf["linkTo"],字串,軟連結要指向哪邊.
1689
		#$conf["linkTo"],字串,軟連結要指向哪邊.
1597
		$conf["linkTo"]="qbpwcf/usr";
1690
		$conf["linkTo"]="etc/qbpwcf";
1598
		#可省略參數:
1691
		#可省略參數:
1599
		#$conf["path"],字串,軟連結要放在哪邊,預設為當前位置.
1692
		#$conf["path"],字串,軟連結要放在哪邊,預設為當前位置.
1600
		$conf["path"]=$rootPath;
1693
		$conf["path"]=$rootPath.$conf["linkTo"];
1601
		#$conf["name"],字串,軟連結的名稱,預設為 "linkTo" 參數的檔案或目錄名稱.
1694
		#$conf["name"],字串,軟連結的名稱,預設為 "linkTo" 參數的檔案或目錄名稱.
1602
		#$conf["name"]=$name;
1695
		#$conf["name"]=$name;
1603
		#$conf["overWrite"],字串,"true"代表要移除既有的項目名稱,來重新建立軟連結;預設為"false"不進行處理.
1696
		#$conf["overWrite"],字串,"true"代表要移除既有的項目名稱,來重新建立軟連結;預設為"false"不進行處理.
1604
		$conf["overWrite"]="true";
1697
		$conf["overWrite"]="true";
1605
		#參考資料:
1698
		#參考資料:
Line 1645... Line 1738...
1645
				
1738
				
1646
			#異常結束執行
1739
			#異常結束執行
1647
			exit(1);
1740
			exit(1);
1648
 
1741
 
1649
			}#if end
1742
			}#if end
1650
			
1743
	
-
 
1744
		#link etc/systemd/system 底下的所有內容
1651
		#函式說明:
1745
		#函式說明:
1652
		#建立軟連結.
1746
		#針對特定目錄下的內容建立軟連結.
1653
		#回傳結果:
1747
		#回傳結果:
1654
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1748
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1655
		#$result["error"],錯誤訊息.
1749
		#$result["error"],錯誤訊息.
1656
		#$result["function"],當前執行的函數名稱.
1750
		#$result["function"],當前執行的函數名稱.
1657
		#$result["content"],軟連結的資訊.
1751
		#$result["content"],字串陣列,每個建立的軟連結資訊.
1658
		#必填參數:
1752
		#必填參數:
1659
		#$conf["fileArgu"],字串,變數__FILE__的內容.
1753
		#$conf["fileArgu"],字串,變數__FILE__的內容.
1660
		$conf["fileArgu"]=__FILE__;
1754
		$conf["fileArgu"]=__FILE__;
1661
		#$conf["linkTo"],字串,軟連結要指向哪邊.
1755
		#$conf["linkToDir"],字串,軟連結要指向哪個目錄底下的內容.
1662
		$conf["linkTo"]="qbpwcf/etc";
1756
		$conf["linkToDir"]="etc/systemd/system";
1663
		#可省略參數:
1757
		#可省略參數:
1664
		#$conf["path"],字串,軟連結要放在哪邊,預設為當前位置.
1758
		#$conf["path"],字串,軟連結要放在哪邊,預設為當前位置.
1665
		$conf["path"]=$rootPath;
1759
		$conf["path"]=$rootPath.$conf["linkToDir"];
1666
		#$conf["name"],字串,軟連結的名稱,預設為 "linkTo" 參數的檔案或目錄名稱.
1760
		#$conf["name"],字串陣列,軟連結的名稱,預設為 "linkToDir" 目錄底下的檔案或目錄名稱.若要指定特定檔案目錄的軟連結名稱,則可以用 $conf["name"][]=array("原始名稱","新的名稱"); 來指定.
1667
		#$conf["name"]=$name;
1761
		#$conf["name"]=array(array("oriName","newName"));
1668
		#$conf["overWrite"],字串,"true"代表要移除既有的項目名稱,來重新建立軟連結;預設為"false"不進行處理.
1762
		#$conf["overWrite"],字串,"true"代表要移除既有的項目名稱,來重新建立軟連結;預設為"false"不進行處理.
1669
		$conf["overWrite"]="true";
1763
		$conf["overWrite"]="true";
1670
		#參考資料:
1764
		#參考資料:
1671
		#無.
1765
		#無.$
1672
		#備註:
1766
		#備註:
1673
		#無.
1767
		#無.
1674
		$createLink=fileAccess::createLink($conf);
1768
		$createMultiLinkInDir=fileAccess::createMultiLinkInDir($conf);
1675
		unset($conf);
1769
		unset($conf);
1676
	
1770
 
1677
		#如果執行失敗
1771
		#如果執行失敗
1678
		if($createLink["status"]==="false"){
1772
		if($createMultiLinkInDir["status"]==="false"){
1679
 
1773
 
1680
			#函式說明:
1774
			#函式說明:
1681
			#撰寫log
1775
			#撰寫log
1682
			#回傳結果:
1776
			#回傳結果:
1683
			#$result["status"],狀態,"true"或"false".
1777
			#$result["status"],狀態,"true"或"false".
Line 1686... Line 1780...
1686
			#$result["argu"],使用的參數.
1780
			#$result["argu"],使用的參數.
1687
			#必填參數:
1781
			#必填參數:
1688
			#$conf["path"],字串,log檔案的路徑與名稱.
1782
			#$conf["path"],字串,log檔案的路徑與名稱.
1689
			$conf["path"]=$logFile;
1783
			$conf["path"]=$logFile;
1690
			#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
1784
			#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
1691
			$conf["content"]=$createLink;
1785
			$conf["content"]=$createMultiLinkInDir;
1692
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1786
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1693
			$conf["fileArgu"]=__FILE__;
1787
			$conf["fileArgu"]=__FILE__;
1694
			#可省略參數:
1788
			#可省略參數:
1695
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1789
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1696
			#$conf["rewrite"]="false";
1790
			#$conf["rewrite"]="false";
Line 1711... Line 1805...
1711
			#異常結束執行
1805
			#異常結束執行
1712
			exit(1);
1806
			exit(1);
1713
 
1807
 
1714
			}#if end
1808
			}#if end
1715
	
1809
	
1716
		break;
1810
		#link usr/bin 底下的所有內容
1717
		
-
 
1718
	default:
-
 
1719
	
-
 
1720
		#函式說明:
1811
		#函式說明:
1721
		#撰寫log
1812
		#針對特定目錄下的內容建立軟連結.
1722
		#回傳結果:
1813
		#回傳結果:
1723
		#$result["status"],狀態,"true"或"false".
1814
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1724
		#$result["error"],錯誤訊息陣列.
1815
		#$result["error"],錯誤訊息.
1725
		#$result["function"],當前函式的名稱.
1816
		#$result["function"],當前執行的函數名稱.
1726
		#$result["argu"],使用的參數.
1817
		#$result["content"],字串陣列,每個建立的軟連結資訊.
1727
		#必填參數:
1818
		#必填參數:
1728
		#$conf["path"],字串,log檔案的路徑與名稱.
1819
		#$conf["fileArgu"],字串,變數__FILE__的內容.
1729
		$conf["path"]=$logFile;
-
 
1730
		#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
-
 
1731
		$conf["content"]="mode \"".$mode."\" not supported!";
-
 
1732
		#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
1733
		$conf["fileArgu"]=__FILE__;
1820
		$conf["fileArgu"]=__FILE__;
-
 
1821
		#$conf["linkToDir"],字串,軟連結要指向哪個目錄底下的內容.
-
 
1822
		$conf["linkToDir"]="usr/bin";
1734
		#可省略參數:
1823
		#可省略參數:
1735
		#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1824
		#$conf["path"],字串,軟連結要放在哪邊,預設為當前位置.
-
 
1825
		$conf["path"]=$rootPath."usr/bin";
-
 
1826
		#$conf["name"],字串陣列,軟連結的名稱,預設為 "linkToDir" 目錄底下的檔案或目錄名稱.若要指定特定檔案目錄的軟連結名稱,則可以用 $conf["name"][]=array("原始名稱","新的名稱"); 來指定.
-
 
1827
		#$conf["name"]=array(array("oriName","newName"));
-
 
1828
		#$conf["overWrite"],字串,"true"代表要移除既有的項目名稱,來重新建立軟連結;預設為"false"不進行處理.
1736
		#$conf["rewrite"]="false";
1829
		$conf["overWrite"]="true";
1737
		#參考資料:
1830
		#參考資料:
1738
		#無.
1831
		#無.$
1739
		#備註:
1832
		#備註:
1740
		#無.
1833
		#無.
1741
		$record=logs::record($conf);
-
 
1742
		
-
 
1743
		#如果執行失敗
-
 
1744
		if($record["status"]==="false"){
-
 
1745
		
-
 
1746
			#印出結果
-
 
1747
			var_dump($record);
-
 
1748
			
-
 
1749
			}#if end
-
 
1750
			
-
 
1751
		#異常結束執行
-
 
1752
		exit(1);
-
 
1753
		
-
 
1754
	}#switch end
-
 
1755
 
-
 
1756
#如果只要安裝函式庫,不要服務檔案跟可執行檔案.
-
 
1757
if($libonly==="true"){
-
 
1758
 
-
 
1759
	#執行到這邊就好
-
 
1760
	exit(0);
-
 
1761
 
-
 
1762
	}#if end
-
 
1763
 
-
 
1764
#於 /usr/bin 底下建立 $pathinfo(__FILE__)["dirname"]."/usr/bin" 底下所有檔案的軟連結.
-
 
1765
#函式說明:
-
 
1766
#針對特定目錄下的內容建立軟連結.
-
 
1767
#回傳結果:
-
 
1768
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
1769
#$result["error"],錯誤訊息.
-
 
1770
#$result["function"],當前執行的函數名稱.
-
 
1771
#$result["content"],字串陣列,每個建立的軟連結資訊.
-
 
1772
#必填參數:
-
 
1773
#$conf["fileArgu"],字串,變數__FILE__的內容.
-
 
1774
$conf["fileArgu"]=__FILE__;
-
 
1775
#$conf["linkToDir"],字串,軟連結要指向哪個目錄底下的內容.
-
 
1776
$conf["linkToDir"]=$pathinfo(__FILE__)["dirname"]."/usr/bin";
-
 
1777
#可省略參數:
-
 
1778
#$conf["path"],字串,軟連結要放在哪邊,預設為當前位置.
-
 
1779
$conf["path"]="/usr/bin";
-
 
1780
#$conf["name"],字串陣列,軟連結的名稱,預設為 "linkToDir" 目錄底下的檔案或目錄名稱.若要指定特定檔案目錄的軟連結名稱,則可以用 $conf["name"][]=array("原始名稱","新的名稱"); 來指定.
-
 
1781
#$conf["name"]=array(array("oriName","newName"));
-
 
1782
#$conf["overWrite"],字串,"true"代表要移除既有的項目名稱,來重新建立軟連結;預設為"false"不進行處理.
-
 
1783
$conf["overWrite"]="true";
-
 
1784
#參考資料:
-
 
1785
#無.$
-
 
1786
#備註:
-
 
1787
#無.
-
 
1788
$createMultiLinkInDir=fileAccess::createMultiLinkInDir($conf);
-
 
1789
unset($conf);
-
 
1790
 
-
 
1791
#如果執行失敗
-
 
1792
if($createMultiLinkInDir["status"]==="false"){
-
 
1793
 
-
 
1794
	#函式說明:
-
 
1795
	#撰寫log
-
 
1796
	#回傳結果:
-
 
1797
	#$result["status"],狀態,"true"或"false".
-
 
1798
	#$result["error"],錯誤訊息陣列.
-
 
1799
	#$result["function"],當前函式的名稱.
-
 
1800
	#$result["argu"],使用的參數.
-
 
1801
	#必填參數:
-
 
1802
	#$conf["path"],字串,log檔案的路徑與名稱.
-
 
1803
	$conf["path"]=$logFile;
-
 
1804
	#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
-
 
1805
	$conf["content"]=$createMultiLinkInDir;
-
 
1806
	#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
1807
	$conf["fileArgu"]=__FILE__;
-
 
1808
	#可省略參數:
-
 
1809
	#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
-
 
1810
	#$conf["rewrite"]="false";
-
 
1811
	#參考資料:
-
 
1812
	#無.
-
 
1813
	#備註:
-
 
1814
	#無.
-
 
1815
	$record=logs::record($conf);
-
 
1816
	
-
 
1817
	#如果執行失敗
-
 
1818
	if($record["status"]==="false"){
-
 
1819
	
-
 
1820
		#印出結果
-
 
1821
		var_dump($record);
-
 
1822
		
-
 
1823
		}#if end
-
 
1824
		
-
 
1825
	#異常結束執行
-
 
1826
	exit(1);
-
 
1827
 
-
 
1828
	}#if end
-
 
1829
	
-
 
1830
#於 /usr/bin/libexec 底下建立 $pathinfo(__FILE__)["dirname"]."/usr/bin/libexec" 底下所有檔案的軟連結.
-
 
1831
#函式說明:
-
 
1832
#針對特定目錄下的內容建立軟連結.
-
 
1833
#回傳結果:
-
 
1834
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
1835
#$result["error"],錯誤訊息.
-
 
1836
#$result["function"],當前執行的函數名稱.
-
 
1837
#$result["content"],字串陣列,每個建立的軟連結資訊.
-
 
1838
#必填參數:
-
 
1839
#$conf["fileArgu"],字串,變數__FILE__的內容.
-
 
1840
$conf["fileArgu"]=__FILE__;
-
 
1841
#$conf["linkToDir"],字串,軟連結要指向哪個目錄底下的內容.
-
 
1842
$conf["linkToDir"]=$pathinfo(__FILE__)["dirname"]."/usr/bin/libexec";
-
 
1843
#可省略參數:
-
 
1844
#$conf["path"],字串,軟連結要放在哪邊,預設為當前位置.
-
 
1845
$conf["path"]="/usr/bin/libexec";
-
 
1846
#$conf["name"],字串陣列,軟連結的名稱,預設為 "linkToDir" 目錄底下的檔案或目錄名稱.若要指定特定檔案目錄的軟連結名稱,則可以用 $conf["name"][]=array("原始名稱","新的名稱"); 來指定.
-
 
1847
#$conf["name"]=array(array("oriName","newName"));
-
 
1848
#$conf["overWrite"],字串,"true"代表要移除既有的項目名稱,來重新建立軟連結;預設為"false"不進行處理.
-
 
1849
$conf["overWrite"]="true";
-
 
1850
#參考資料:
-
 
1851
#無.
-
 
1852
#備註:
-
 
1853
#無.
-
 
1854
$createMultiLinkInDir=fileAccess::createMultiLinkInDir($conf);
1834
		$createMultiLinkInDir=fileAccess::createMultiLinkInDir($conf);
1855
unset($conf);
1835
		unset($conf);
1856
 
-
 
1857
#如果執行失敗
-
 
1858
if($createMultiLinkInDir["status"]==="false"){
-
 
1859
 
-
 
1860
	#函式說明:
-
 
1861
	#撰寫log
-
 
1862
	#回傳結果:
-
 
1863
	#$result["status"],狀態,"true"或"false".
-
 
1864
	#$result["error"],錯誤訊息陣列.
-
 
1865
	#$result["function"],當前函式的名稱.
-
 
1866
	#$result["argu"],使用的參數.
-
 
1867
	#必填參數:
-
 
1868
	#$conf["path"],字串,log檔案的路徑與名稱.
-
 
1869
	$conf["path"]=$logFile;
-
 
1870
	#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
-
 
1871
	$conf["content"]=$createMultiLinkInDir;
-
 
1872
	#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
1873
	$conf["fileArgu"]=__FILE__;
-
 
1874
	#可省略參數:
-
 
1875
	#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
-
 
1876
	#$conf["rewrite"]="false";
-
 
1877
	#參考資料:
-
 
1878
	#無.
-
 
1879
	#備註:
-
 
1880
	#無.
-
 
1881
	$record=logs::record($conf);
-
 
1882
	
-
 
1883
	#如果執行失敗
-
 
1884
	if($record["status"]==="false"){
-
 
1885
	
-
 
1886
		#印出結果
-
 
1887
		var_dump($record);
-
 
1888
		
-
 
1889
		}#if end
-
 
1890
		
-
 
1891
	#異常結束執行
-
 
1892
	exit(1);
-
 
1893
 
-
 
1894
	}#if end
-
 
1895
 
-
 
1896
#如果 $whiteIp 不為空
-
 
1897
if(count($whiteIp)>0){
-
 
1898
 
1836
 
1899
	#如果有 ip-blockerd.service 存在
-
 
1900
	#函式說明:
-
 
1901
	#檢查多個檔案與資料夾是否存在.
-
 
1902
	#回傳的結果:
-
 
1903
	#$result["status"],執行正常與否,"true"代表正常,"false"代表不正常.
-
 
1904
	#$result["error"],錯誤訊息陣列.
-
 
1905
	#$resutl["function"],當前執行的涵式名稱.
-
 
1906
	#$result["argu"],使用的參數.
-
 
1907
	#$result["allExist"],所有檔案皆存在的識別,"true"代表皆存在,"false"代表沒有全部都存在.
-
 
1908
	#$result["varName"][$i],爲第$i個資料夾或檔案的路徑與名稱。
-
 
1909
	#$result["varNameFullPath"][$i],爲第$i個資料夾或檔案的完整檔案系統路徑與名稱,如果不存在則代表路徑是網址.
-
 
1910
	#$result["varNameWebPath"][$i],為第$i個資料夾或檔案的網址,若"web"參數為"true",才會有該內容.
-
 
1911
	#$result["varExist"][$i],爲第$i個資料夾或檔案是否存在,"true"代表存在,"false"代表不存在。
-
 
1912
	#必填參數:
-
 
1913
	#$conf["fileArray"],陣列字串,要檢查是否存在的檔案有哪些,須爲一維陣列數值。
-
 
1914
	$conf["fileArray"]=array("./etc/system/ip-blockerd.service");
-
 
1915
	#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
1916
	$conf["fileArgu"]=__FILE__;
-
 
1917
	#可省略參數:
-
 
1918
	#$conf["disableWebSearch"],"字串",是否取消「當檔案找不到時,改用catchWebContent類別的wget函數來檢查檔案是否存在於網路上」的功能,"false"不取消,若要取消該功能請設為"true",若抓到的內容為空字串則會視為檔案不存在,預設為"true".
-
 
1919
	$conf["disableWebSearch"]="true";
-
 
1920
	#$conf["userDir"],字串,網頁是否置放於家目錄底下,"true"為是,"false"為不是,預設為"true".
-
 
1921
	$conf["userDir"]="false";
-
 
1922
	#$conf["web"],字串,檔案是放在web就是"true",反之為檔案系統"false",預設為"true".
-
 
1923
	$conf["web"]="false";
-
 
1924
	#參考資料:
-
 
1925
	#http://php.net/manual/en/function.file-exists.php
-
 
1926
	#http://php.net/manual/en/control-structures.foreach.php
-
 
1927
	#備註:
-
 
1928
	#函數file_exists檢查的路徑為檔案系統的路徑
-
 
1929
	#$result["varName"][$i]結果未實作
-
 
1930
	$checkMultiFileExist=fileAccess::checkMultiFileExist($conf);
-
 
1931
	unset($conf);
-
 
1932
	
-
 
1933
	#如果執行失敗
-
 
1934
	if($checkMultiFileExist["status"]==="false"){
-
 
1935
	
-
 
1936
		#函式說明:
-
 
1937
		#撰寫log
-
 
1938
		#回傳結果:
-
 
1939
		#$result["status"],狀態,"true"或"false".
-
 
1940
		#$result["error"],錯誤訊息陣列.
-
 
1941
		#$result["function"],當前函式的名稱.
-
 
1942
		#$result["argu"],使用的參數.
-
 
1943
		#必填參數:
-
 
1944
		#$conf["path"],字串,log檔案的路徑與名稱.
-
 
1945
		$conf["path"]=$logFile;
-
 
1946
		#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
-
 
1947
		$conf["content"]=$createMultiLinkInDir;
-
 
1948
		#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
1949
		$conf["fileArgu"]=__FILE__;
-
 
1950
		#可省略參數:
-
 
1951
		#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
-
 
1952
		#$conf["rewrite"]="false";
-
 
1953
		#參考資料:
-
 
1954
		#無.
-
 
1955
		#備註:
-
 
1956
		#無.
-
 
1957
		$record=logs::record($conf);
-
 
1958
		
-
 
1959
		#如果執行失敗
1837
		#如果執行失敗
1960
		if($record["status"]==="false"){
1838
		if($createMultiLinkInDir["status"]==="false"){
1961
		
-
 
1962
			#印出結果
-
 
1963
			var_dump($record);
-
 
1964
			
-
 
1965
			}#if end
-
 
1966
			
-
 
1967
		#異常結束執行
-
 
1968
		exit(1);
-
 
1969
 
1839
 
1970
		}#if end
-
 
1971
		
-
 
1972
	#如果存在
-
 
1973
	if($checkMultiFileExist["allExist"]==="true"){
-
 
1974
	
-
 
1975
		#啟動服務的關鍵字
-
 
1976
		$serviceStartKeyWord="ExecStart=/usr/bin/ipBlockerd.php";
-
 
1977
		
-
 
1978
		#重新啟動服務的關鍵字
-
 
1979
		$serviceRestartKeyWord="ExecReload=killall ipBlockerd.php; sleep 10; ipBlockerd.php";
-
 
1980
		
-
 
1981
		#函式說明:
-
 
1982
		#將一維陣列轉換為用特定符號間隔的字串,ex:array("1","2","3") to "a;b;c;".
-
 
1983
		#回傳的結果:
-
 
1984
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
1985
		#$result["function"],當前執行的function名稱
-
 
1986
		#$result["error"],錯誤訊息陣列.
-
 
1987
		#$result["content"],處理好的字串.
-
 
1988
		#$result["argu"],使用的參數.
-
 
1989
		#必填參數:
-
 
1990
		#$conf["inputArray"],字串陣列,要轉成字串的一維陣列.
-
 
1991
		$conf["inputArray"]=$whiteIp;
-
 
1992
		#可省略參數:
-
 
1993
		#$conf["spiltSymbol"],字串,用來區隔字串的符號,預設為;
-
 
1994
		$conf["spiltSymbol"]=" --exclude ";
-
 
1995
		#$conf["skipEnd"],字串,結尾是否不要加上符號,預設為"false",要加上符號,"true"代表不要加上符號。
-
 
1996
		$conf["skipEnd"]="true";
-
 
1997
		#$conf["spiltSymbolAtStart"],字串,是否要在開頭加上spiltSymbol,預設為"false",代表不要;反之為“true”.
-
 
1998
		$conf["spiltSymbolAtStart"]="true";
-
 
1999
		#參考資料:
-
 
2000
		#無.
-
 
2001
		#備註:
-
 
2002
		#無.
-
 
2003
		$arrayToString=arrays::arrayToString($conf);
-
 
2004
		unset($conf);
-
 
2005
	
-
 
2006
		#如果執行出錯
-
 
2007
		if($arrayToString["status"]==="false"){
-
 
2008
	
-
 
2009
			#函式說明:
1840
			#函式說明:
2010
			#撰寫log
1841
			#撰寫log
2011
			#回傳結果:
1842
			#回傳結果:
2012
			#$result["status"],狀態,"true"或"false".
1843
			#$result["status"],狀態,"true"或"false".
2013
			#$result["error"],錯誤訊息陣列.
1844
			#$result["error"],錯誤訊息陣列.
Line 2015... Line 1846...
2015
			#$result["argu"],使用的參數.
1846
			#$result["argu"],使用的參數.
2016
			#必填參數:
1847
			#必填參數:
2017
			#$conf["path"],字串,log檔案的路徑與名稱.
1848
			#$conf["path"],字串,log檔案的路徑與名稱.
2018
			$conf["path"]=$logFile;
1849
			$conf["path"]=$logFile;
2019
			#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
1850
			#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
2020
			$conf["content"]=$arrayToString;
1851
			$conf["content"]=$createMultiLinkInDir;
2021
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1852
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
2022
			$conf["fileArgu"]=__FILE__;
1853
			$conf["fileArgu"]=__FILE__;
2023
			#可省略參數:
1854
			#可省略參數:
2024
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1855
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
2025
			#$conf["rewrite"]="false";
1856
			#$conf["rewrite"]="false";
Line 2039... Line 1870...
2039
				
1870
				
2040
			#異常結束執行
1871
			#異常結束執行
2041
			exit(1);
1872
			exit(1);
2042
 
1873
 
2043
			}#if end
1874
			}#if end
2044
 
-
 
2045
		#啟動服務的新內容
-
 
2046
		$serviceStartNewContent=$serviceStartKeyWord.$arrayToString["content"];
-
 
2047
 
-
 
2048
		#重新啟動服務的新內容
-
 
2049
		$serviceRestartNewContent=$serviceRestartKeyWord.$arrayToString["content"];
-
 
2050
	
1875
	
2051
		#設置白名單ip
1876
		#link usr/bin/libexec 底下的所有內容
2052
		#函式說明:
1877
		#函式說明:
2053
		#更新檔案的內容.
1878
		#針對特定目錄下的內容建立軟連結.
2054
		#回傳結果:
1879
		#回傳結果:
2055
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1880
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2056
		#$result["error"],錯誤訊息.
1881
		#$result["error"],錯誤訊息.
2057
		#$result["function"],當前執行的函數名稱.
1882
		#$result["function"],當前執行的函數名稱.
2058
		#$result["content"],軟連結的資訊.
1883
		#$result["content"],字串陣列,每個建立的軟連結資訊.
2059
		#必填參數:
1884
		#必填參數:
2060
		#$conf["fileArgu"],字串,變數__FILE__的內容.
1885
		#$conf["fileArgu"],字串,變數__FILE__的內容.
2061
		$conf["fileArgu"]=__FILE__;
1886
		$conf["fileArgu"]=__FILE__;
2062
		#$conf["file"],字串,要更新的檔案位置與名稱.
1887
		#$conf["linkToDir"],字串,軟連結要指向哪個目錄底下的內容.
2063
		$conf["file"]="./etc/systemd/system/ip-blockerd.service";
1888
		$conf["linkToDir"]="usr/bin/libexec";
2064
		#可省略參數:
1889
		#可省略參數:
2065
		#$conf["overWriteWith"],字串陣列,要置換成什麼樣的內容,每個元素代表一行內容.
-
 
2066
		#$conf["overWriteWith"]=array();
-
 
2067
		#$conf["replaceWith"],字串陣列,要將什麼內容置換成什麼內容.
1890
		#$conf["path"],字串,軟連結要放在哪邊,預設為當前位置.
2068
		$conf["replaceWith"]=array(array($serviceStartKeyWord,$serviceStartNewContent),array($serviceRestartKeyWord,$serviceRestartNewContent));
-
 
2069
		#$conf["replaceLike"],字串,預設為"false",代表要完全符合關鍵字才能進行整行替換;反之為"true".
-
 
2070
		$conf["replaceLike"]="true";
1891
		$conf["path"]=$rootPath.$conf["linkToDir"];
2071
		#$conf["addToTailWhenNoMatch"],字串,預設為"false"不做事;若為"true",則代表若使用 "replaceWith" 參數但沒有符合條件的內容出現,則新增到檔案的尾端.
1892
		#$conf["name"],字串陣列,軟連結的名稱,預設為 "linkToDir" 目錄底下的檔案或目錄名稱.若要指定特定檔案目錄的軟連結名稱,則可以用 $conf["name"][]=array("原始名稱","新的名稱"); 來指定.
2072
		#$conf["addToTailWhenNoMatch"]="false";
1893
		#$conf["name"]=array(array("oriName","newName"));
2073
		#$conf["addToTailBeforeThat"],字串,當 "replaceWith" 參數有使用,且 "addToTailWhenNoMatch" 為 "true" 時,若有使用該參數,則會從尾端尋找符合條件的行內容,然後將 沒有符合 "replaceWith" 條件的內容新增在此之前.
1894
		#$conf["overWrite"],字串,"true"代表要移除既有的項目名稱,來重新建立軟連結;預設為"false"不進行處理.
2074
		#$conf["addToTailBeforeThat"]="?\>";
1895
		$conf["overWrite"]="true";
2075
		#參考資料:
1896
		#參考資料:
2076
		#無.
1897
		#無.
2077
		#備註:
1898
		#備註:
2078
		#無.
1899
		#無.
2079
		$updateFile=fileAccess::updateFile($conf);
1900
		$createMultiLinkInDir=fileAccess::createMultiLinkInDir($conf);
2080
		unset($conf);
1901
		unset($conf);
2081
	
1902
 
2082
		#如果執行出錯
1903
		#如果執行失敗
2083
		if($updateFile["status"]==="false"){
1904
		if($createMultiLinkInDir["status"]==="false"){
2084
	
1905
 
2085
			#函式說明:
1906
			#函式說明:
2086
			#撰寫log
1907
			#撰寫log
2087
			#回傳結果:
1908
			#回傳結果:
2088
			#$result["status"],狀態,"true"或"false".
1909
			#$result["status"],狀態,"true"或"false".
2089
			#$result["error"],錯誤訊息陣列.
1910
			#$result["error"],錯誤訊息陣列.
Line 2091... Line 1912...
2091
			#$result["argu"],使用的參數.
1912
			#$result["argu"],使用的參數.
2092
			#必填參數:
1913
			#必填參數:
2093
			#$conf["path"],字串,log檔案的路徑與名稱.
1914
			#$conf["path"],字串,log檔案的路徑與名稱.
2094
			$conf["path"]=$logFile;
1915
			$conf["path"]=$logFile;
2095
			#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
1916
			#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
2096
			$conf["content"]=$updateFile;
1917
			$conf["content"]=$createMultiLinkInDir;
2097
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1918
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
2098
			$conf["fileArgu"]=__FILE__;
1919
			$conf["fileArgu"]=__FILE__;
2099
			#可省略參數:
1920
			#可省略參數:
2100
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1921
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
2101
			#$conf["rewrite"]="false";
1922
			#$conf["rewrite"]="false";
Line 2116... Line 1937...
2116
			#異常結束執行
1937
			#異常結束執行
2117
			exit(1);
1938
			exit(1);
2118
 
1939
 
2119
			}#if end
1940
			}#if end
2120
	
1941
	
2121
		}#if end
1942
		break;
2122
 
-
 
2123
	}#if end
-
 
2124
 
-
 
2125
#於 /etc/systemd/system 底下建立 $pathinfo(__FILE__)["dirname"]."/etc/systemd/system" 底下所有服務檔案的軟連結.
-
 
2126
#函式說明:
-
 
2127
#針對特定目錄下的內容建立軟連結.
-
 
2128
#回傳結果:
-
 
2129
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
2130
#$result["error"],錯誤訊息.
-
 
2131
#$result["function"],當前執行的函數名稱.
-
 
2132
#$result["content"],字串陣列,每個建立的軟連結資訊.
-
 
2133
#必填參數:
-
 
2134
#$conf["fileArgu"],字串,變數__FILE__的內容.
-
 
2135
$conf["fileArgu"]=__FILE__;
-
 
2136
#$conf["linkToDir"],字串,軟連結要指向哪個目錄底下的內容.
-
 
2137
$conf["linkToDir"]=$pathinfo(__FILE__)["dirname"]."/etc/systemd/system";
-
 
2138
#可省略參數:
-
 
2139
#$conf["path"],字串,軟連結要放在哪邊,預設為當前位置.
-
 
2140
$conf["path"]="/etc/systemd/system";
-
 
2141
#$conf["name"],字串陣列,軟連結的名稱,預設為 "linkToDir" 目錄底下的檔案或目錄名稱.若要指定特定檔案目錄的軟連結名稱,則可以用 $conf["name"][]=array("原始名稱","新的名稱"); 來指定.
-
 
2142
#$conf["name"]=array(array("oriName","newName"));
-
 
2143
#$conf["overWrite"],字串,"true"代表要移除既有的項目名稱,來重新建立軟連結;預設為"false"不進行處理.
-
 
2144
$conf["overWrite"]="true";
-
 
2145
#參考資料:
-
 
2146
#無.
-
 
2147
#備註:
-
 
2148
#無.
-
 
2149
$createMultiLinkInDir=fileAccess::createMultiLinkInDir($conf);
-
 
2150
unset($conf);
-
 
2151
 
-
 
2152
#如果執行失敗
-
 
2153
if($createMultiLinkInDir["status"]==="false"){
-
 
2154
 
-
 
2155
	#函式說明:
-
 
2156
	#撰寫log
-
 
2157
	#回傳結果:
-
 
2158
	#$result["status"],狀態,"true"或"false".
-
 
2159
	#$result["error"],錯誤訊息陣列.
-
 
2160
	#$result["function"],當前函式的名稱.
-
 
2161
	#$result["argu"],使用的參數.
-
 
2162
	#必填參數:
-
 
2163
	#$conf["path"],字串,log檔案的路徑與名稱.
-
 
2164
	$conf["path"]=$logFile;
-
 
2165
	#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
-
 
2166
	$conf["content"]=$createMultiLinkInDir;
-
 
2167
	#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
2168
	$conf["fileArgu"]=__FILE__;
-
 
2169
	#可省略參數:
-
 
2170
	#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
-
 
2171
	#$conf["rewrite"]="false";
-
 
2172
	#參考資料:
-
 
2173
	#無.
-
 
2174
	#備註:
-
 
2175
	#無.
-
 
2176
	$record=logs::record($conf);
-
 
2177
	
-
 
2178
	#如果執行失敗
-
 
2179
	if($record["status"]==="false"){
-
 
2180
	
-
 
2181
		#印出結果
-
 
2182
		var_dump($record);
-
 
2183
		
1943
		
2184
		}#if end
-
 
2185
 
-
 
2186
	#異常結束執行
-
 
2187
	exit(1);
-
 
2188
 
-
 
2189
	}#if end
-
 
2190
 
-
 
2191
#函式說明:
-
 
2192
#針對特定目錄下的內容建立軟連結.
-
 
2193
#回傳結果:
-
 
2194
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
2195
#$result["error"],錯誤訊息.
-
 
2196
#$result["function"],當前執行的函數名稱.
-
 
2197
#$result["content"],字串陣列,每個建立的軟連結資訊.
-
 
2198
#必填參數:
-
 
2199
#$conf["fileArgu"],字串,變數__FILE__的內容.
-
 
2200
$conf["fileArgu"]=__FILE__;
-
 
2201
#$conf["linkToDir"],字串,軟連結要指向哪個目錄底下的內容.
-
 
2202
$conf["linkToDir"]=$pathinfo(__FILE__)["dirname"]."/etc/qbpwcf";
-
 
2203
#可省略參數:
-
 
2204
#$conf["path"],字串,軟連結要放在哪邊,預設為當前位置.
-
 
2205
$conf["path"]="/etc/qbpwcf";
-
 
2206
#$conf["name"],字串陣列,軟連結的名稱,預設為 "linkToDir" 目錄底下的檔案或目錄名稱.若要指定特定檔案目錄的軟連結名稱,則可以用 $conf["name"][]=array("原始名稱","新的名稱"); 來指定.
-
 
2207
#$conf["name"]=array(array("oriName","newName"));
-
 
2208
#$conf["overWrite"],字串,"true"代表要移除既有的項目名稱,來重新建立軟連結;預設為"false"不進行處理.
-
 
2209
$conf["overWrite"]="true";
-
 
2210
#參考資料:
-
 
2211
#無.
-
 
2212
#備註:
-
 
2213
#無.
-
 
2214
$createMultiLinkInDir=fileAccess::createMultiLinkInDir($conf);
-
 
2215
unset($conf);
-
 
2216
 
-
 
2217
#如果執行失敗
-
 
2218
if($createMultiLinkInDir["status"]==="false"){
-
 
2219
 
-
 
2220
	#函式說明:
-
 
2221
	#撰寫log
-
 
2222
	#回傳結果:
-
 
2223
	#$result["status"],狀態,"true"或"false".
-
 
2224
	#$result["error"],錯誤訊息陣列.
-
 
2225
	#$result["function"],當前函式的名稱.
-
 
2226
	#$result["argu"],使用的參數.
-
 
2227
	#必填參數:
-
 
2228
	#$conf["path"],字串,log檔案的路徑與名稱.
-
 
2229
	$conf["path"]=$logFile;
-
 
2230
	#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
-
 
2231
	$conf["content"]=$createMultiLinkInDir;
-
 
2232
	#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
2233
	$conf["fileArgu"]=__FILE__;
-
 
2234
	#可省略參數:
-
 
2235
	#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
-
 
2236
	#$conf["rewrite"]="false";
-
 
2237
	#參考資料:
-
 
2238
	#無.
-
 
2239
	#備註:
1944
	default:
2240
	#無.
-
 
2241
	$record=logs::record($conf);
-
 
2242
	
-
 
2243
	#如果執行失敗
-
 
2244
	if($record["status"]==="false"){
-
 
2245
	
1945
	
-
 
1946
		#函式說明:
-
 
1947
		#撰寫log
2246
		#印出結果
1948
		#回傳結果:
-
 
1949
		#$result["status"],狀態,"true"或"false".
-
 
1950
		#$result["error"],錯誤訊息陣列.
-
 
1951
		#$result["function"],當前函式的名稱.
-
 
1952
		#$result["argu"],使用的參數.
-
 
1953
		#必填參數:
-
 
1954
		#$conf["path"],字串,log檔案的路徑與名稱.
-
 
1955
		$conf["path"]=$logFile;
-
 
1956
		#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
-
 
1957
		$conf["content"]="mode \"".$mode."\" not supported!";
-
 
1958
		#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
1959
		$conf["fileArgu"]=__FILE__;
-
 
1960
		#可省略參數:
-
 
1961
		#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
-
 
1962
		#$conf["rewrite"]="false";
-
 
1963
		#參考資料:
-
 
1964
		#無.
-
 
1965
		#備註:
-
 
1966
		#無.
2247
		var_dump($record);
1967
		$record=logs::record($conf);
2248
		
1968
		
2249
		}#if end
1969
		#如果執行失敗
-
 
1970
		if($record["status"]==="false"){
2250
		
1971
		
-
 
1972
			#印出結果
-
 
1973
			var_dump($record);
-
 
1974
			
-
 
1975
			}#if end
-
 
1976
			
2251
	#異常結束執行
1977
		#異常結束執行
2252
	exit(1);
1978
		exit(1);
2253
 
1979
		
2254
	}#if end
1980
	}#switch end
2255
 
1981
	
2256
#systemctl daemon-reload
1982
#systemctl daemon-reload
2257
#函式說明:
1983
#函式說明:
2258
#執行 systemd 程序來管理服務.
1984
#執行 systemd 程序來管理服務.
2259
#回傳結果:
1985
#回傳結果:
2260
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1986
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 2337... Line 2063...
2337
#$result["content"][$i]["folder"],字串,第$i+1個名稱為目錄還是檔案.
2063
#$result["content"][$i]["folder"],字串,第$i+1個名稱為目錄還是檔案.
2338
#$result["folder"],字串,當前目標為目錄還是檔案"true"代表為目錄,"false"代表為檔案.
2064
#$result["folder"],字串,當前目標為目錄還是檔案"true"代表為目錄,"false"代表為檔案.
2339
#$result["position"],目前的位置.
2065
#$result["position"],目前的位置.
2340
#必填參數:
2066
#必填參數:
2341
#$conf["position"],字串,目錄位置與名稱,「.」代表當前位置,「..」代表上一層.
2067
#$conf["position"],字串,目錄位置與名稱,「.」代表當前位置,「..」代表上一層.
2342
$conf["position"]=$rootPath.$name."/usr/lib/systemd/system";
2068
$conf["position"]=$rootPath."usr/lib/systemd/system";
2343
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
2069
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
2344
$conf["fileArgu"]=__FILE__;
2070
$conf["fileArgu"]=__FILE__;
2345
#可省略參數:
2071
#可省略參數:
2346
#無
2072
#無
2347
#參考資料:
2073
#參考資料: