Pages

Tuesday, 29 November 2011

cPanel定时全局备份详解

如果你使用的是cPanel面板的话,那就好办多了。

一、备份原理:

下面这个方案是原理是利用cPanel的时钟守护作业(Cron Jobs)来定时运行全局备份脚本,并自动将备份文件通过 FTP 上传到其他的服务器来实现的。

二、下载脚本:http://dl.dbank.com/c0huwgo7ny

或者将下面内容复杂到编辑器,另保存为 fullbackup.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
// PHP script to allow periodic cPanel backups automatically.
// Based on script posted by max.hedroom in cpanel.net forums
// This script contains passwords.  KEEP ACCESS TO THIS FILE SECURE!
 
// ********* 下面项目需要设定 *********
 
// cPanel登录信息
$cpuser = "wangyan"; // CPanel帐号
$cppass = "123456"; // CPanel密码
$domain = "192.168.0.101"; // cPanel所在域名或IP
$skin = "x3"; // 正在使用的cPanel风格,默认"x3"。
 
 
/************** 备份目的地 ***************
"homedir" - 本地主目录
"ftp" - 远程FTP备份(主动模式)
"passiveftp" - 远程FTP备份(被动模式)
"scp" - 加密传输(需服务器支持)
****************************************/
$savedir = "homedir"; // 备份目的地,默认"homedir",即只做本地备份。
 
// FTP上传的信息(备份目的地为本地的,可不填)
 
$ftpuser = "wangyan"; // FTP帐号
$ftppass = "123456"; // FTP密码
$ftphost = "192.168.0.102"; // FTP服务器IP
$ftpport = "21"; // FTP端口,默认21
$ftprdir = "/"; // 远程FTP目录,默认"/"
 
// 通知信息
$notifyemail = "example@domain.com"; // 信息反馈邮件地址
 
// 安全模式
$secure = 0; // 0为标准http, 1为ssl(需要主机支持ssl)
 
// 设定值为1时会在排程记录中产生网页报告
$debug = 0;
 
// *********** 以下内容不要更改! *********
 
if ($secure) {
   $url = "ssl://".$domain;
   $port = 2083;
} else {
   $url = $domain;
   $port = 2082;
}
 
$socket = fsockopen($url,$port);
if (!$socket) { echo "Failed to open socket connection... Bailing out!\n"; exit; }
 
// Encode authentication string
$authstr = $cpuser.":".$cppass;
$pass = base64_encode($authstr);
 
$params = "dest=$savedir&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&port=$ftpport&rdir=$ftprdir&submit=Generate Backup";
 
// Make POST to cPanel
fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0\r\n");
fputs($socket,"Host: $domain\r\n");
fputs($socket,"Authorization: Basic $pass\r\n");
fputs($socket,"Connection: Close\r\n");
fputs($socket,"\r\n");
 
// Grab response even if we don't do anything with it.
while (!feof($socket)) {
   $response = fgets($socket,4096);
   if ($debug) echo $response;
}
 
fclose($socket);
 
?>

三、警示声明:

这个全局脚本包含cPanel的登录帐号和密码,为了安全考虑,需要将这个脚本放到public_html文件夹以外的文件夹中,比如:“/home/yourname/backup”,并设置该文件夹的权限为600。切记!

四、配置步骤:

1、修改上述脚本,保存为“fullbackup.php”。
注:FTP信息填的是存储备份文件的主机;Ftphost记住填IP,不要填域名;FTP模式有的主机要改为“passiveftp”模式。
2、将上述脚本上传到“/home/yourname/backup”目录。(没有可以新建backup目录)
3、将backup目录的权限改为600

五、图解CRON(时钟守护作业)配置:

1、点击“时钟守护作业”图标,然后选择“高级”模式。


2、选择备份的时间周期,然后在命令框中输入
/usr/bin/php -q /home/yourname/backup/fullbackup.php

3、自动备份完成后,在主机的根目录便可看到已备份的文件了。

哈哈,怎样啊?数据安全就这么简单吧~~ ;-)
更新记录:1、支持"homedir"、"ftp"、"passiveftp"、"scp四种备份位置。
参考资料: http://www.totalchoicehosting.com/forums/index.php?showtopic=7787

No comments:

Post a Comment