Rev 11 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*QBPWCF, Quick Build PHP website Component base on Fedora Linux.Copyright (C) 2014~2025 Min-Jhin,ChenThis file is part of QBPWCF.QBPWCF is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.QBPWCF is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with QBPWCF. If not, see <http://www.gnu.org/licenses/>.*/#使用命名空間qbpwcfnamespace qbpwcf;#assets dir$assetsDir="assets of cmd::rsync_20241212";#cmd::rysnc的source參數$paramSourceOfRsync=$assetsDir."/serverA/vm-disk.qcow2";#cmd::rsync的target參數$paramTargetOfRsync=$assetsDir."/serverB/vm-disk.qcow2";#如果存在 $paramTargetOfRsync 檔案if(\file_exists($paramTargetOfRsync)){#移除之\unlink($paramTargetOfRsync);}#if end#函式說明:#使用 linux 的 rsync 指令來進行備份檔案.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息.#$result["function"],當前執行的函式名稱.#$result["cmd"],執行的指令.#必填參數:#$conf["source"],字串,需要進行備份的目錄或檔案$conf["source"]=$paramSourceOfRsync;#$conf["target"],字串,備份到哪個地方或檔案$conf["target"]=$paramTargetOfRsync;#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑$conf["fileArgu"]=__FILE__;#可省略參數:#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要複製,預設為"false".$conf["recursive"]="true";#$conf["exclude"],字串陣列,每個元素代表要排除的項目,預設不指定.#$conf["exclude"]=array();#$conf["excludeFileType"],字串陣列,每個元素代表要排除的副檔名,預設不指定.#$conf["excludeFileType"]=array();#$conf["bandWidthLimit"],字串,代表頻寬上限,單為可為K、M、G等,預設不指定.$conf["bandWidthLimit"]="400K";#$conf["newFileOnly"],字串,是否只複製比較新的檔案,預設為"true"代表要;反之為"false".$conf["newFileOnly"]="true";#$conf["appendMode"],字串,是否用append的方式複製,適用於檔案內同位置內容一樣的檔案,預設值"false"代表不要;反之為"true".$conf["appendMode"]="true";#參考資料:#無#備註:#無.$rsync=cmd::rsync($conf);unset($conf);#如果執行失敗if($rsync["status"]==="false"){#函式說明:#撰寫log#回傳結果:#$result["status"],狀態,"true"或"false".#$result["error"],錯誤訊息陣列.#$result["function"],當前函式的名稱.#$result["argu"],使用的參數.#必填參數:#$conf["path"],字串,log檔案的路徑與名稱.$conf["path"]=$logFile;#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.$conf["content"]=$rsync;#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑$conf["fileArgu"]=__FILE__;#可省略參數:#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.#$conf["rewrite"]="false";#參考資料:#無.#備註:#無.$record=logs::record($conf);unset($conf);#如果寫log失敗if($record["status"]==="false"){#印出結果var_dump($record);}#if end#結束執行,回傳錯誤代碼1exit(1);}#if end#debugvar_dump($rsync);