【免費註冊】 【會員登入】 【個人資料】 【會員列表】 【論壇幫助】 【論壇搜尋】 【登出論壇】

∮Ω奧米加空間∮
∮Ω奧米加空間∮»技術文件區»【教學】使用 php 備份 PostgreSQL 適用於虛擬主機

訂覽該主題更新消息 | 將該主題推薦給朋友 發表新主題 發起投票  回覆
作者 主題    
dc
管理員



性別:男
來自:瓦肯星
發表總數:7454
註冊時間:2002-05-07 16:32
(第 1 篇) 【教學】使用 php 備份 PostgreSQL 適用於虛擬主機

資料來源:grokbase

主要參考了前人的 script 並修改 pg_dump 的語法。有的虛擬主機並未開放 ssh 的功能但是有排程 cron 可以設定,透過 php 來定時備份 pgsql 資料庫
預設我的 www 路徑為 /home/omegaidvtw/public_html/
備份檔案php執行檔為 pg_backup.php
備份路徑為 /home/omegaidvtw/backup/db
pg_dump 執行檔案在 /usr/bin 裡

cron 如果要每 6 小時備份的話如下
0 */6 * * * php /home/omegaidvtw/public_html/pg_backup.php

pg_backup.php
代碼:

#!/usr/bin/php -q
<?php
// File: pg_backup.php
// Purpose: backup postgres
// Date: 02 Dec 2000
// Author: Dan Wilson
// 我設定時區為台北 可以依需求修改
date_default_timezone_set('Asia/Taipei');
$data_dir = "/home/omegaidvtw/backup/db";
$pg_dump_dir = "/usr/bin";
$keep = (60 * 60 * 24) * 30; // 30 days

$dbname[] = "這裡填要備份的資料庫名稱backupdbname";

$dump_date = date("Ymd_His");

$file_name = $data_dir . "/dump_" . $dump_date . ".sql";

// echo date("Y-m-d H:i:s T"), "\n";
if ($cntDB = count($dbname)) {
for ($iDB = 0; $iDB < $cntDB; $iDB++) {
//echo "$pg_dump_dir/pg_dump postgres://資料庫使用者名稱dbusername:密碼dbpassword@127.0.0.1:5432/$dbname[$iDB] >> $file_name";
system("$pg_dump_dir/pg_dump postgres://資料庫使用者名稱dbusername:密碼dbpassword@127.0.0.1:5432/$dbname[$iDB] >> $file_name");
}
} else {
//echo "$pg_dump_dir/pg_dumpall postgres://資料庫使用者名稱dbusername:密碼dbpassword@127.0.0.1:5432 > $file_name";
system("$pg_dump_dir/pg_dumpall postgres://資料庫使用者名稱dbusername:密碼dbpassword@127.0.0.1:5432 > $file_name");
}

// echo date("Y-m-d H:i:s T"), "\n";

$dirh = dir($data_dir);
while($entry = $dirh->read()) {
$old_file_time = (date("U") - $keep);
$file_created = filectime("$data_dir/$entry");
if ($file_created < $old_file_time && !is_dir($entry)) {
if(unlink("$data_dir/$entry")) {
// echo "Delete $data_dir/$entry\n";
}
}
}

?>





本帖由dc最後編輯於2019-02-14 09:34

Your mind to my mind,

your thought to my thought
發表時間:2018-12-27 14:48
dc的個人資料 傳送郵件給dc dc的個人首頁 dc發表的所有文章 送出悄悄話給dc IP:203.*.*.* 編輯  引言回覆 
所有時間均為GMT+8, 現在是2019-06-26 17:01    
訂覽該主題更新消息 | 將該主題推薦給朋友 發表新主題 發起投票  回覆

快速回覆
主題 ( 回覆文章可以不輸入標題 )
URLs自動分析
有回覆時郵件通知
禁用表情符號
使用簽名

<聯絡我們 - OMEGA - 控制面板>

Powered by Centaur & Joksky & DC, ver 2003.08.14
Copyright ©2002-2008 PHPY.COM


頁面生成時間:0.013672828674316