Changeset 18609 for tmp/version-2_5-test/data/class/pages/admin/system/LC_Page_Admin_System_Bkup.php
- Timestamp:
- 2010/03/11 10:35:11 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tmp/version-2_5-test/data/class/pages/admin/system/LC_Page_Admin_System_Bkup.php
r17505 r18609 51 51 52 52 $this->bkup_dir = DATA_PATH . "downloads/backup/"; 53 $this->bkup_ext = '.tar.gz'; 53 54 54 55 } … … 114 115 // 削除 115 116 case 'delete': 116 $del_file = $this->bkup_dir.$_POST['list_name'] . ".tar.gz";117 $del_file = $this->bkup_dir.$_POST['list_name'] . $this->bkup_ext; 117 118 // ファイルの削除 118 119 if(is_file($del_file)){ … … 128 129 // ダウンロード 129 130 case 'download' : 130 $filename = $_POST['list_name'] . ".tar.gz";131 $dl_file = $this->bkup_dir.$_POST['list_name'] . ".tar.gz";131 $filename = $_POST['list_name'] . $this->bkup_ext; 132 $dl_file = $this->bkup_dir.$_POST['list_name'] . $this->bkup_ext; 132 133 133 134 // ダウンロード開始 … … 146 147 $arrBkupList = $this->lfGetBkupData("ORDER BY create_date DESC"); 147 148 // テンプレートファイルに渡すデータをセット 148 $this->arrErr = isset($arrErr) ? $arrErr : "";149 $this->arrForm = isset($arrForm) ? $arrForm : "";149 $this->arrErr = isset($arrErr) ? $arrErr : array(); 150 $this->arrForm = isset($arrForm) ? $arrForm : array(); 150 151 $this->arrBkupList = $arrBkupList; 151 152 … … 204 205 // バックアップファイル作成 205 206 function lfCreateBkupData($bkup_name){ 207 // 実行時間を制限しない 208 set_time_limit(0); 209 206 210 $objQuery = new SC_Query(); 207 211 $csv_data = ""; 208 212 $csv_autoinc = ""; 209 $ err= true;213 $success = true; 210 214 211 215 $bkup_dir = $this->bkup_dir; 212 if (!is_dir(dirname($bkup_dir))) $ err= mkdir(dirname($bkup_dir));216 if (!is_dir(dirname($bkup_dir))) $success = mkdir(dirname($bkup_dir)); 213 217 $bkup_dir = $bkup_dir . $bkup_name . "/"; 214 218 … … 262 266 // ディレクトリが存在していなければ作成する 263 267 if (!is_dir(dirname($csv_file))) { 264 $ err= mkdir(dirname($csv_file));265 } 266 if ($ err) {268 $success = mkdir(dirname($csv_file)); 269 } 270 if ($success) { 267 271 // dataをCSV出力 268 272 $fp = fopen($csv_file,"w"); 269 273 if($fp) { 270 274 if($csv_data != ""){ 271 $ err= fwrite($fp, $csv_data);275 $success = fwrite($fp, $csv_data); 272 276 } 273 277 fclose($fp); … … 278 282 if($fp) { 279 283 if($csv_autoinc != ""){ 280 $ err= fwrite($fp, $csv_autoinc);284 $success = fwrite($fp, $csv_autoinc); 281 285 } 282 286 fclose($fp); … … 285 289 286 290 // 各種ファイルコピー 287 if ($ err) {291 if ($success) { 288 292 /** 289 293 // 商品画像ファイルをコピー 290 294 // ディレクトリが存在していなければ作成する 291 295 $image_dir = $bkup_dir . "save_image/"; 292 if (!is_dir(dirname($image_dir))) $ err= mkdir(dirname($image_dir));296 if (!is_dir(dirname($image_dir))) $success = mkdir(dirname($image_dir)); 293 297 $copy_mess = ""; 294 298 $copy_mess = SC_Utils_Ex::sfCopyDir("../../upload/save_image/",$image_dir, $copy_mess); … … 297 301 // ディレクトリが存在していなければ作成する 298 302 $templates_dir = $bkup_dir . "templates/"; 299 if (!is_dir(dirname($templates_dir))) $ err= mkdir(dirname($templates_dir));303 if (!is_dir(dirname($templates_dir))) $success = mkdir(dirname($templates_dir)); 300 304 $copy_mess = ""; 301 305 $copy_mess = SC_Utils_Ex::sfCopyDir("../../user_data/templates/",$templates_dir, $copy_mess); … … 304 308 // ディレクトリが存在していなければ作成する 305 309 $inc_dir = $bkup_dir . "include/"; 306 if (!is_dir(dirname($inc_dir))) $ err= mkdir(dirname($inc_dir));310 if (!is_dir(dirname($inc_dir))) $success = mkdir(dirname($inc_dir)); 307 311 $copy_mess = ""; 308 312 $copy_mess = SC_Utils_Ex::sfCopyDir("../../user_data/include/",$inc_dir, $copy_mess); … … 311 315 // ディレクトリが存在していなければ作成する 312 316 $css_dir = $bkup_dir . "css/"; 313 if (!is_dir(dirname($css_dir))) $ err= mkdir(dirname($css_dir));317 if (!is_dir(dirname($css_dir))) $success = mkdir(dirname($css_dir)); 314 318 $copy_mess = ""; 315 319 $copy_mess = SC_Utils_Ex::sfCopyDir("../../user_data/css/",$css_dir, $copy_mess); 316 320 **/ 317 321 //圧縮フラグTRUEはgzip圧縮をおこなう 318 $tar = new Archive_Tar($this->bkup_dir . $bkup_name .".tar.gz", TRUE);322 $tar = new Archive_Tar($this->bkup_dir . $bkup_name . $this->bkup_ext, TRUE); 319 323 320 324 //bkupフォルダに移動する … … 328 332 } 329 333 330 if (!$ err) {334 if (!$success) { 331 335 $arrErr['bkup_name'] = "バックアップに失敗しました。"; 332 336 // バックアップデータの削除 … … 465 469 // バックアップファイルをリストアする 466 470 function lfRestore($bkup_name){ 471 // 実行時間を制限しない 472 set_time_limit(0); 473 467 474 $objQuery = new SC_Query("", false); 468 475 $csv_data = ""; 469 $ err= true;476 $success = true; 470 477 471 478 $bkup_dir = $this->bkup_dir . $bkup_name . "/"; … … 475 482 476 483 //圧縮フラグTRUEはgzip解凍をおこなう 477 $tar = new Archive_Tar($bkup_name . ".tar.gz", TRUE);484 $tar = new Archive_Tar($bkup_name . $this->bkup_ext, TRUE); 478 485 479 486 //指定されたフォルダ内に解凍する 480 $ err= $tar->extract("./");487 $success = $tar->extract("./"); 481 488 482 489 // 無事解凍できれば、リストアを行う 483 if ($ err) {490 if ($success) { 484 491 485 492 // トランザクション開始 … … 487 494 488 495 // DBをクリア 489 $ err= $this->lfDeleteAll($objQuery);496 $success = $this->lfDeleteAll($objQuery); 490 497 491 498 // INSERT実行 492 if ($ err) $err= $this->lfExeInsertSQL($objQuery, $bkup_dir . "bkup_data.csv");499 if ($success) $success = $this->lfExeInsertSQL($objQuery, $bkup_dir . "bkup_data.csv"); 493 500 494 501 // 自動採番の値をセット 495 if ($ err) $this->lfSetAutoInc($objQuery, $bkup_dir . "autoinc_data.csv");502 if ($success) $this->lfSetAutoInc($objQuery, $bkup_dir . "autoinc_data.csv"); 496 503 497 504 // 各種ファイルのコピー 498 505 /** 499 if ($ err) {506 if ($success) { 500 507 // 画像のコピー 501 508 $image_dir = $bkup_dir . "save_image/"; … … 523 530 524 531 // リストア成功ならコミット失敗ならロールバック 525 if ($ err) {532 if ($success) { 526 533 $objQuery->commit(); 527 534 $this->restore_msg = "リストア終了しました。"; … … 656 663 if(!in_array("dtb_bkup", $arrTableList)){ 657 664 // 存在していなければ作成 665 // MySQL でプライマリキーを設定するため bkup_name は varchar(50) とした。 658 666 $cre_sql = " 659 667 create table dtb_bkup 660 668 ( 661 bkup_name text,669 bkup_name varchar(50), 662 670 bkup_memo text, 663 create_date timestamp 671 create_date timestamp, 672 PRIMARY KEY (bkup_name) 664 673 ); 665 674 ";
Note: See TracChangeset
for help on using the changeset viewer.