我們曾在之前建議過,可改用winscp取代一般ftp軟體的使用。
今天剛好有獨立主機用戶,需要取得主機自動備份檔,
用於比對其檔案內容,這時要抓檔回去,使用winscp最方便了。
標籤: backup
whm/cpanel帳號備份的問題(初安裝-帳號是關閉的)
whm/cpanel 在最近一兩年內的更新中,
對於大眾影響最大的功能,除了增加新版模之外,
還有增加一套新的備份功能。
如何透過cpanel備份檔案及資料庫?
我們已將cpanel的theme,都切成新的版模:paper lantern,
希望藉由本篇,重新講解一下cpanel的備份步驟。
cpanel 排程教學(配合自動備份)
我們有一篇: 如何設定cpanel單一帳戶的遠端自動備分?
最後有提到,進ssh去做 crontab -e ,但ssh對於一般user會有操作上的難度,
所以在此,我們介紹cpanel的gui操作方式。
註:
1. 隔天需要在進 ftp 查看,備份檔案是否已經產生。
2. 你的空間帳號,需改成ftp帳號,否則備份將無法上傳。
如何設定cpanel單一帳戶的遠端自動備份?
cpanel有提供可以從外部呼叫的API,如果活用這些API,就可以做到:定時將帳戶的內容備分到遠端的ftp主機中。
實作方法:
(1) 準備好用來作遠端備分的ftp,並且在ftp的登入目錄裡,加上 /backup/AAA這個目錄,建議AAA的部分,
(2) 在cpbackup.php 這個檔案之中,要先做對應的修改,總共需要改九行。
(3) 用ftp 上傳檔案
在account的public_html 下,放上這兩個檔案,( 檔案在此可以下載,選cpbackup script )
xmlapi.php
cpbackup.php
在這邊要特別注意一點:
backup這個功能,因為相對消耗資源,
(4) 此處,有兩種方法可以執行這個php來做檔案的備分:
(a) 在browser上, http://你的域名/
(b) 用該account的id/pw ( 不要用root的 ) ssh 登入這個account, 然後下指令 php -q /home/你的帳戶名稱/public_html/
理論上,出現的message應該是長成這樣子:
這樣子,資料應該就會備分到你的ftp了。
另外,週期性執行不一定需要。如果說只做一次的話,就不用這麼麻煩。用這個方式,
(5) 用該account的id/pw ( 不要用root的 ) ssh 登入這個account
下指令:
crontab -e
這樣子是設定每天備分:
0 0 * * * php -q /home/你的帳戶名稱/public_html/
這是每週備分
@weekly php -q /home/你的帳戶名稱/public_html/
這是每月備分
@monthly php -q /home/你的帳戶名稱/public_html/
(6) 最後還有一個但書。在用來backup的ftp這邊,會有一個問題:檔案愈積愈多。所以在用來backup的ftp主機這邊。最好也設置工作排程 ( cronjob )
find /path/to/files* -mtime +5 -exec rm {} \;
這個指令的意思是:到 /path/to/files* 這邊,找出超過5天沒有使用的檔案,將它刪除。
(備註:unethost.com虛擬主機,已有每日自動異地備份)
如何設定mysql的自動備分
cpanel有一個功能是mysql備分,這個功能有一個不足的地方是,沒有辦法設定成自動化的。然而,只要透過ftp上傳一個shell script,再加上crontab的設定,還是可以完成類似的事。
下方是shell script的內容,將這個shell script用文字編輯器,編輯好之後,存檔成為backup.sh。並且在透過ftp上傳到使用者的家目錄下之後,加上可執行的權限。
接著就要來設定cron job,cron job可以透過cpanel的GUI來設定。下方的例子,就是每天的0時0分要執行一次這個backup.sh。
0 | 0 | * | * | * | /home/使用者名稱/backup.sh>/dev/null 2>&1 |